【问题标题】:Datepart in store procedure存储过程中的日期部分
【发布时间】:2014-03-05 21:07:37
【问题描述】:

对于以下查询,我必须比较每个@currentdate 和@workingdatekey 的mm 部分。如何仅比较 yyyymmdd 格式的 mm 部分?如果@workingdatekey 的月份与@currentdate 的月份相同,则继续否则退出

Declare @currentdate int
set @currentdate =  CONVERT(int,CONVERT(varchar(20),GETDATE(),112))
print @currentdate


Declare @workingdatekey int
set @workingdatekey =  CONVERT(int,CONVERT(varchar(20),GETDATE()-1,112))
print @workingdatekey

【问题讨论】:

标签: mysql sql sql-server stored-procedures


【解决方案1】:
IF (MONTH(GETDATE()-1) = MONTH(GETDATE()))
 BEGIN
   /* DO something here */
 END
ELSE
 BEGIN
  /* Else do something here*/
 END

【讨论】:

    【解决方案2】:

    您是否有理由将这些值转换为 varchar?如果没有,您可以执行 datepart(mm, "your date column")。这将返回日期的月份。然后你可以这样做:

    if datepart(mm, "currentdatekey") = datepart(mm, "workingdatekey")
          print 'They matched'
    else
          print 'They are different'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-14
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 2015-10-24
      • 2017-10-30
      • 2016-05-13
      • 1970-01-01
      相关资源
      最近更新 更多