我正在尝试在“付款日期”列之间返回结果,当我运行下面的查询时,我没有得到正确的结果。我从该列获得的数据可能是10/1/2013。任何想法我可能在这里做错了什么?我只想要2017年的行.. TIA
付款日期列类型为nvarchar(50)
示例列数据类似于10/31/2017 ...
SELECT ID, [Date of Payment]
FROM tblData
WHERE ([Date of Payment] BETWEEN '1/1/2017' AND '12/31/2017')
答案 0 :(得分:1)
尝试下一个代码 并避免在字段名称中添加空格并将其替换为下划线
SELECT ID, PaymentDate
FROM tblData
WHERE (PaymentDate BETWEEN CONVERT(DATETIME, '2017-01-01', 102) AND CONVERT(DATETIME, '2017-12-30', 102))
答案 1 :(得分:0)
(我假设SQL Server基于语法。)
修复表格中的[Date of Payment]
数据。
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'