【问题标题】:Varchar to date ConversionVarchar 到日期转换
【发布时间】:2020-01-23 23:18:40
【问题描述】:

问题转换日期。有些采用 mdyyyy 格式,有些采用 mmddyyyy 格式并存储为 varchar。有谁知道我将这些转换为日期格式的最佳选择?

【问题讨论】:

  • 我们需要更多信息...
  • 用您正在使用的数据库标记您的问题。同时提供样本数据和期望的结果。
  • 您的表格将如何显示 2019-01-25 和 2019-12-05?按照您的 mdyyyy 格式,它们都会出现 1252019。

标签: sql date data-conversion


【解决方案1】:
Declare @date1 varchar(8) = '872019',@date2 varchar(8) = '08122019'

Select 
@date1 as date1,
CASE 
WHEN LEN(@date1) < 8 
THEN CAST(SUBSTRING(@date1,3,4)
        + REPLICATE('0',2-LEN(SUBSTRING(@date1,1,1))) + SUBSTRING(@date1,1,1) 
        + REPLICATE('0',2-LEN(SUBSTRING(@date1,2,1))) + SUBSTRING(@date1,2,1) AS DATE)
ELSE CAST(SUBSTRING(@date1,5,4)+SUBSTRING(@date1,1,2)+SUBSTRING(@date1,3,2) as date) END as casted_date1,
@date2 as date2,
cast(substring(@date2,5,4)+substring(@date2,1,2)+SUBSTRING(@date2,3,2) as date) as casted_date2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 2011-06-10
    • 2019-12-20
    • 1970-01-01
    相关资源
    最近更新 更多