且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-11-13 19:57:26

交换日期: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)