我正在使用此命令,它不是取记录。 我的命令
select * from policy_record_manual where (CONVERT(VARCHAR(MAX), enddate, 103) BETWEEN CONVERT(VARCHAR(MAX), '25/02/2015', 103) AND CONVERT(VARCHAR(MAX), '04/03/2015', 103))
我在enddate
列中有两条记录位于25/02/2015
和04/03/2015
之间,但仍未提取任何结果。
请帮忙
答案 0 :(得分:3)
使用正确的日期格式,您的查询应该有效:
select *
from policy_record_manual
where enddate between '2015-02-05' and '2015-03-04'
您正在以字符串形式进行比较。不要将日期/时间比较为字符串。使用本机类型比较它们。
您应该始终将日期/日期时间与日期进行比较 - 而不是字符串。大多数数据库(包括SQL Server)都支持日期的ISO标准并识别该格式的字符串。
答案 1 :(得分:0)
如果您使用SQL Server,则可以使用SET DATEFORMAT语句更改查询中的日期格式。
set dateformat dmy
declare @begin datetime='25/02/2015'
declare @end datetime='04/03/2015'
select *
from policy_record_manual
where enddate between @begin and @end
答案 2 :(得分:-1)
试试这个
select *
from policy_record_manual
where (CONVERT(VARCHAR(MAX), enddate, 103) BETWEEN CONVERT(VARCHAR(MAX), '02/25/2015', 103) AND CONVERT(VARCHAR(MAX), '03/04/2015', 103))