【问题标题】:Datepart of month in store procedure存储过程中月份的日期部分
【发布时间】:2014-03-05 22:00:01
【问题描述】:

我声明@workingdatekey 如下。

我需要通过从@workingdatekey 中减去一个月来定义@newdatekey,它显示为yyyymmdd 格式。

@workingdatekey 和 @newdatekey 都是 yyyymmdd 格式。

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

【问题讨论】:

    标签: sql sql-server sql-server-2008 stored-procedures datepart


    【解决方案1】:
    DECLARE @workingdatekey int
    SET @workingdatekey =  CONVERT(VARCHAR(8),DATEADD(MONTH, -1,GETDATE()),112)
    
    SELECT @workingdatekey
    
    RESULT: 20140205
    

    DECLARE @workingdatekey int
    SET @workingdatekey =  CAST(CONVERT(VARCHAR(8),DATEADD(MONTH, -1,GETDATE()),112) AS INT)
    
    SELECT @workingdatekey
    
    RESULT: 20140205
    

    两者都会得到相同的结果。

    您尝试执行的操作GETDATE()-1 从当前日期时间中减去一天。您需要使用DATEADD() 函数为日期时间值添加或减去间隔。

    【讨论】:

    • 我需要这个结果是 20140204
    • 您的问题说您想从日期中减去一个月并以 YYYYMMDD 格式显示。如果您想从当前日期中减去一天,您可以在 DATEADD() 函数中使用 DAY,例如 DATEADD(DAY, -1, GETDATE())
    • 没问题,很高兴它有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 2011-06-27
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多