比较MS SQL中的日期时间值

时间:2016-01-29 10:11:16

标签: sql sql-server database datetime

这个问题可能重复,但我已经尝试了其他问题的所有答案,但没有一个答案确实有帮助。

我试图将日期时间值与静态值进行比较(我需要每个记录的日期大于1/1/2016)

CREATE PROCEDURE Cursusoverzicht as
SELECT tblBijeenkomst.bijeenkomstdatum, tblCursussen.cursus_id, tblCursussen.cursustitel
FROM tblCursussen
INNER JOIN [dbo].[tblCursusDocenten] on [dbo].[tblCursusDocenten].[cursus_id] = [dbo].[tblCursussen].[cursus_id]
INNER JOIN [dbo].[tblBijeenkomst] on [dbo].[tblBijeenkomst].[docent_id] = [dbo].[tblCursusDocenten].[docent_id]
WHERE tblBijeenkomst.bijeenkomstdatum > '2016/1/1 00:00:00:000'

这会保留0条记录,任何人都知道吗?

对不起荷兰名字

3 个答案:

答案 0 :(得分:0)

尝试将日期时间的格式调整为2016-01-01 00:00:00.000。这是SQL Server的默认格式。

您可以使用GETDATE()功能自行测试。这会将当前日期和时间返回为DATETIME

SELECT
   GETDATE() AS FormatTest
;

返回

FormatTest
----------------
2016-01-29 10:40:20.567

答案 1 :(得分:0)

您可以格式化此条件的日期时间

WHERE tblBijeenkomst.bijeenkomstdatum > CONVERT(DATETIME, 'YOUR DATE EXPRESSION', STYLE)

对于STYLE参数,您必须看到:https://msdn.microsoft.com/es-es/library/ms187928.aspx#Anchor_4

例如:

CONVERT(DATETIME, '15.01.01', 2)

答案 2 :(得分:0)

看来你几乎就在那里:

      CREATE PROCEDURE Cursusoverzicht as
         SELECT tblBijeenkomst.bijeenkomstdatum
            ,tblCursussen.cursus_id
            ,tblCursussen.cursustitel
           FROM tblCursussen
         INNER JOIN [dbo].[tblCursusDocenten] 
           on
                [dbo].[tblCursusDocenten].[cursus_id] 
             = [dbo].[tblCursussen].[cursus_id]
          INNER JOIN [dbo].[tblBijeenkomst] 
            on 
                 [dbo].[tblBijeenkomst].[docent_id] 
              = [dbo].[tblCursusDocenten].[docent_id]
            and tblBijeenkomst.bijeenkomstdatum >          
                    CONVERT (date, '2016-01-01T00:00:00:000')