繁体   English   中英

在MS SQL中比较日期时间值

[英]Comparing datetime values in MS SQL

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

我试图将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条记录,有人知道吗?

对不起,荷兰人的名字

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

您可以使用GETDATE()函数自己对此进行测试。 这将以DATETIME返回当前日期和时间。

SELECT
   GETDATE() AS FormatTest
;

返回

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

您可以为这种情况格式化日期时间

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)

看来您快到了:

      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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM