【问题标题】:Converting yesterdays date to a string SQL Server将昨天的日期转换为字符串 SQL Server
【发布时间】:2020-07-07 15:06:46
【问题描述】:

我试图简单地将昨天的日期(以 23 格式)转换为字符串。我不断收到错误“将字符串转换为 smalldatetime 数据类型时转换失败。”

有什么想法吗?

DECLARE @yesterday CHAR;
SET @yesterday = convert(varchar,getdate()-1,23);

【问题讨论】:

    标签: sql-server datetime


    【解决方案1】:

    这应该可行:

    DECLARE @yesterday varchar(100)
    SET @yesterday = CONVERT(varchar(100),DATEADD(day,-1,getdate()),23)
    SELECT @yesterday 
    

    【讨论】:

      【解决方案2】:

      char 等价于char(1)。因此,在您的 set 语句之后,@yesterday 变量将具有值 '2' - 格式化日期时间的第一个字符。您必须尝试将其放入smalldatetime,这当然会失败,因为'2' 不是有效的smalldatetime。您应该使用 char(10) 作为日期格式 23。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-22
        • 2021-06-26
        • 1970-01-01
        相关资源
        最近更新 更多