SQL查询不返回日期范围之间的数据
我试图在“付款日期”列之间返回结果,而当我运行下面的查询时,我没有得到正确的结果。我从那个专栏中得到的数据可能是2013年10月1日。你知道我在这里做错了什么吗?我只想要2017年的排名。。短暂性脑缺血发作 付款日期列类型为nvarchar(50) 样本列数据如2017年10月31日SQL查询不返回日期范围之间的数据,sql,Sql,我试图在“付款日期”列之间返回结果,而当我运行下面的查询时,我没有得到正确的结果。我从那个专栏中得到的数据可能是2013年10月1日。你知道我在这里做错了什么吗?我只想要2017年的排名。。短暂性脑缺血发作 付款日期列类型为nvarchar(50) 样本列数据如2017年10月31日 SELECT ID, [Date of Payment] FROM tblData WHERE ([Date of Payment] BETWEEN '1/1/2017' AND
SELECT ID, [Date of Payment]
FROM tblData
WHERE ([Date of Payment] BETWEEN '1/1/2017' AND '12/31/2017')
(我假设SQL Server是基于语法的。)
修复表中的[付款日期]
数据
update tblData
set [Date of Payment] = convert(date, [Date of Payment], 101);
alter tblData
alter column [Date of Payment] date;
瞧!你的问题解决了
还应将数据类型更改为使用ISO标准格式:
WHERE [Date of Payment] BETWEEN '2017-01-01' AND '2017-12-31'
尝试下一个代码
避免在字段名中加空格,并用下划线替换
SELECT ID, PaymentDate
FROM tblData
WHERE (PaymentDate BETWEEN CONVERT(DATETIME, '2017-01-01', 102) AND CONVERT(DATETIME, '2017-12-30', 102))
用您正在使用的数据库标记您的问题。将列类型更改为date。当我运行此操作时,我在“between”附近得到了不正确的语法?其中,在转换(“付款日期”,2017103年1月1日)和转换(“付款日期”,2017103年12月31日)之间,其中(转换(日期时间,'2017-01-01',102)和转换(日期时间,'2017-12-30',102')之间的付款日期)尝试了此操作,当从字符串转换日期和/或时间时,我得到错误转换失败,其中([付款日期]在转换之间(日期时间'2017-01-01',102)和转换(日期时间'2017-12-30',102))