代码之家  ›  专栏  ›  技术社区  ›  user9173591

在T-SQL存储过程中格式化SQL Server中的日期和时间值时出错

  •  0
  • user9173591  · 技术社区  · 6 年前

    我有一个简单的存储过程,其中一部分我想设置2个变量,一个用于当前时间,另一个用于当前日期。我需要他们进来 hhmm 时间和格式 yyyyMMdd 日期的格式。

    以下是我目前掌握的代码:

    BEGIN
        DECLARE @d AS DATETIME 
        DECLARE @t as TIME
    
        SET @d = GETDATE()
        SET @t  = SYSDATETIME()
    

    但是,我尝试使用的所有更改这两个变量格式的方法都帮不上我的忙。我在网上找到的唯一示例是在常规查询中格式化值。

    有人能告诉我应该怎么做才能得到这些值吗?提前谢谢。

    1 回复  |  直到 6 年前
        1
  •  1
  •   John Cappelletti    6 年前

    如果2012年以上,您可以使用Format()

    实例

    DECLARE @d as varchar(8) = format(GetDate(),'yyyyMMdd')
    DECLARE @t as varchar(4) = format(SYSDATETIME(),'HHmm')   -- use hh for 12 hour time
    
    Select @d,@t
    

    退货

    (No column name)    (No column name)
    20180511            1738
    

    2005年

    DECLARE @d as varchar(8) = convert(varchar(10),GetDate(),112)
    DECLARE @t as varchar(8) = replace(left(convert(varchar(25),SYSDATETIME(),108),5),':','')