我有一个名为&#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
答案 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。另外,请指定您使用的是哪个数据库。