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

TSQL:DateTme列varchar可以将“1753-01-01”转换为空字符串

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

    DateTme 列(强制转换为varchar),其中可能包含 1753-01-01 一个空字符串。

    例如,如果我使用:

    SELECT 
        LEFT(CONVERT(VARCHAR, DateCol1, 120), 10) 
    FROM
        ourDatabase.dbo.ourTable
    

    另请参见:
    What is the significance of 1/1/1753 in SQL Server? 关于这个特定日期的背景。

    另外,请参见:{Datetime到varchar转换的一般讨论}:

    How to convert DateTime to VarChar

    这适用于使用SSMS 14.0.17的Microsoft SQL Server 2014

    1 回复  |  直到 6 年前
        1
  •  3
  •   sticky bit    6 年前

    使用 replace() .

    SELECT replace(left(convert(varchar, datecol1, 120), 10), '1753-01-01', '')
           FROM ourtable;
    

    db<>fiddle