SQL Query不在日期范围之间返回数据

时间:2018-01-22 13:13:47

标签: sql

我正在尝试在“付款日期”列之间返回结果,当我运行下面的查询时,我没有得到正确的结果。我从该列获得的数据可能是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')

2 个答案:

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