【问题标题】:More date format conversion SQL更多日期格式转换SQL
【发布时间】:2019-02-28 06:54:37
【问题描述】:

您好,我正在使用 SQL 2014,我需要转换以下 2 种日期格式:

12/31/18 - Varchar 
12/31/2018 - Varchar

转成这个格式最终格式

December 31,2018 Varchar

我知道使用 varchar 是不正确的。 有什么建议吗?

【问题讨论】:

  • 我认为最好的方法是转换为日期然后转换为 varchar。尝试在文档中查找CASTCONVERT
  • 别这样!只需转换为date,然后将该值存储在表中。

标签: sql sql-server


【解决方案1】:

尝试使用:

DECLARE @f varchar(50) = '12/31/18'
SELECT FORMAT(CAST(@f AS DATETIME), N'MMMM dd, yyyy')

输出:

December 31, 2018

你的第二个变种:

DECLARE @f varchar(50) = '12/31/2018'
SELECT FORMAT(CAST(@f AS DATETIME), N'MMMM dd, yyyy')

输出:

December 31, 2018

【讨论】:

    【解决方案2】:

    您也可以使用以下查询来尝试

    create table DateValue (DateVal varchar(10))
    insert into DateValue values
    ('12/31/18'),
    ('12/31/2018'),
    ('01/31/18'),
    ('01/31/2018')
    
    Select 
        DateName( month , DateAdd( month , DATEPART(MONTH, DateVal) , 0 ) - 1 ) + ' ' +
        Cast(DATEPART(dd, DateVal) as Varchar)  + ', ' +
        + Cast (DATEPART(YYYY, DateVal) as Varchar) as VarcharDate
    from DateValue
    

    输出如下所示。

    VarcharDate
    ----------------
    December 31, 2018
    December 31, 2018
    January 31, 2018
    January 31, 2018
    

    此查询也将在format() 不可用的较低版本的 SQL Server 中运行。

    Live Demo

    【讨论】:

      猜你喜欢
      • 2016-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 2021-04-30
      • 2015-04-30
      • 1970-01-01
      相关资源
      最近更新 更多