SQL选择2个日期之间不起作用

时间:2016-02-10 14:38:39

标签: sql

我有一个名为&#34的列;付款日期" (一个nvarchar(50)),我试图选择日期在2015年的所有行。

Select ID,[Date of Payment]
From mytable
WHERE     ('Date of Payment' BETWEEN '2015/01/1' AND '2015/12/31')

当我运行上面的select语句时,它不会返回任何行。付款日期可能是2015年1月1日或1/1/15等。我的语法有问题吗? TIA

3 个答案:

答案 0 :(得分:1)

您之间无法使用,因为您的日期字段不是DATETIME类型。

Select ID,[Date of Payment]
From mytable
WHERE     [Date of Payment] like '%2015%'

答案 1 :(得分:1)

Where子句中存在错误 如果我理解得很好,你使用MS-SQL,在这个方言中,字段名称用方括号括起来,而不是单引号。

Select [ID],[Date of Payment]
From [mytable]
WHERE     ([Date of Payment] BETWEEN '2015/01/01' AND '2015/12/31' )

答案 2 :(得分:0)

正如@MattGibson所说,您正在比较字符串'付款日期'用你的字符串(代表日期)。这对您列中的值没有任何影响。

请检查如何在特定的DBMS中存储日期。当然,您需要更改该列中的数据类型并更改您正在进行的比较。

PS。另外,请指定您使用的是哪个数据库。