日期之间的SQL搜索错误

时间:2014-11-11 02:45:06

标签: mysql sql-server

我想在两个特定日期之间检索数据,而且我正确地使用此查询

select * from POS.dbo.voucher where date_time between '10 october 2014 00.00.00 ' and '11 october 2014 12.00.00'

但问题是如果我将月份更改为

select * from POS.dbo.voucher where date_time between '10 march 2014 00.00.00 ' and '11 march 2014 12.00.00'

它仍然以同样的记录归还给我。似乎它只比较日期并将记录归还给我。

知道我做错了吗?

我在数据库中将日期作为varchar。

谢谢!

2 个答案:

答案 0 :(得分:0)

您似乎正在使用SQL Server(基于dbo)。使用日期常量的标准日期格式:

select *
from POS.dbo.voucher
where date_time between '2014-10-10 00:00:00' and '2014-10-11 12:00:00'

但是,为此,您需要在数据库中使用正确的日期格式存储日期。因此,您应该使用正确的数据类型修复数据结构以存储日期。

答案 1 :(得分:0)

我同意你最好将字段从varchar更改为datetime。如果这不是一个选项,那么您应该在MS SQL Server中将查询中的varchar字段转换为适当的日期时间,可能通过函数,也许通过强制转换。顺便说一下,最好用实际的db标记,也可能是SQL。

相关问题