记录不在SQL查询中从数据库中获取

时间:2015-03-02 13:01:48

标签: c# sql

我正在使用此命令,它不是取记录。 我的命令

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/201504/03/2015之间,但仍未提取任何结果。 请帮忙

3 个答案:

答案 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))