我想在两个特定日期之间检索数据,而且我正确地使用此查询
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。
谢谢!
答案 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。