如何在sqlserver表中获取两个日期之间的记录? [英] How to get record between two two dates in sqlserver table ?

查看:1666
本文介绍了如何在sqlserver表中获取两个日期之间的记录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在sqlserver表中获取两个日期之间的记录?



此查询运行正常 -

选择Jobtitle,来自JobForm的CONVERT(varchar(10),CreatedDate,103),其中GETDATE() - 30和GETDATE()之间的CreatedDate



并返回适当的结果



但这不是错误 -



当我运行此查询时 -



How to get record between two two dates in sqlserver table ??

this query is running fine --
select Jobtitle ,CONVERT(varchar(10),CreatedDate,103) from JobForm where CreatedDate between GETDATE()-30 and GETDATE()

and returning appropriate result

but this is NOT whats the error --

when i am running this query --

select JobTitle, CONVERT(VARCHAR(11),CreatedDate,103)  from JobForm
    where CreatedDate between CONVERT(VARCHAR(11),'06/03/2013',103) and  CONVERT(VARCHAR(11),'09/02/2013',103)







我得到了没有记录,只有空白结果




I am getting no record ,just blank result

推荐答案

交换日期:BETWEEN要求第一个为开始日期,第二个为结束日期。

由于你的结束是在你开始之前,没有记录被返回。
Swap the date around: BETWEEN expects the first one to be the start date, and the second to be the end date.
Since your end is before your start, no records are returned.


你好,



对于日期比较,所有值必须是日期类型。当您尝试字符串比较时,您的查询将不返回任何记录,BETWEEN将无法按预期工作。
Hello,

For date comparison all values must be of date type. Your query will return no records as you are trying string comparison, BETWEEN will not work as expected.
CONVERT(VARCHAR(11), CreateDate, 103)

我建议您将SQL更改为

I suggest you change your SQL to

SELECT JobTitle, CONVERT(VARCHAR(11),CreatedDate,103)  FROM JobForm
    WHERE CreatedDate BETWEEN  CONVERT(DATE,'09/02/2013',103) AND  CONVERT(DATE,'06/03/2013',103)





问候,



Regards,


我建​​议在比较之前在CreateDate列上添加相同的日期转换:



SELECT JobTitle,CONVERT(VARCHAR( 11),CreatedDate,103)FROM JobForm

WHERE CONVERT(DATE,CreatedDate,103) BETWEEN CONVERT(DATE,''09/02/2013'',103) AND CONVERT(日期,''06/03/2013'',103)
I suggest to also add the same date conversion on the CreateDate column as well before comparing:

SELECT JobTitle, CONVERT(VARCHAR(11),CreatedDate,103) FROM JobForm
WHERE CONVERT(DATE,CreatedDate,103) BETWEEN CONVERT(DATE,''09/02/2013'',103) AND CONVERT(DATE,''06/03/2013'',103)


这篇关于如何在sqlserver表中获取两个日期之间的记录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆