【问题标题】:Comparing datetime values in MS SQL比较 MS SQL 中的日期时间值
【发布时间】:2016-01-29 10:11:15
【问题描述】:

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

我正在尝试将日期时间值与静态值进行比较(我需要每条记录的日期都大于 2016 年 1 月 1 日)

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

对不起荷兰人的名字

【问题讨论】:

  • tblBijeenkomst.bijeenkomstdatum 列的数据类型?
  • tblBijeenkomst.bijeenkomstdatum 是一个日期时间
  • 尝试将2016/1/1 00:00:00:000更改为2016/1/1 00:00:00.000
  • 如果没有WHERE,您会得到结果吗?
  • 声明一个变量@DateTimeConst datetime = '2016-01-01 00:00:00.000' select @DateTimeConst 在执行查询之前检查它的值

标签: sql sql-server database datetime


【解决方案1】:

看来你快到了:

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

【讨论】:

    【解决方案2】:

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

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

    SELECT
       GETDATE() AS FormatTest
    ;
    

    返回

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

    【讨论】:

      【解决方案3】:

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

      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)
      

      【讨论】:

        猜你喜欢
        • 2011-06-15
        • 2014-09-11
        • 1970-01-01
        • 2017-06-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-19
        • 1970-01-01
        相关资源
        最近更新 更多