首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SQL Server中处理MMddyyyy日期格式?

如何在SQL Server中处理MMddyyyy日期格式?
EN

Stack Overflow用户
提问于 2021-05-24 20:55:35
回答 3查看 252关注 0票数 0

我正在从第三方供应商API获取以下字符串格式的日期:

代码语言:javascript
复制
MM/dd/yyyy
yyyy/MM/dd
yyyyMMdd
yyyy-MM-dd
MMddyyyy

因此,一些记录以yyyy-MM-dd格式显示了出生日期,而另一些记录则以其他格式显示了道布。除了format MMddyyyy之外,所有的格式都使用SQL /Cast函数转换为yyyy-MM-dd

如何将MMddyyyy it转换为yyyy-MM-dd

我正在尝试SQL Server 2019中的以下语句,但它不起作用:

代码语言:javascript
复制
DECLARE @dt varchar(8)= '02022020';
SELECT CAST(@dt as date) s1;

Msg 241, Level 16, State 1, Line 20
Conversion failed when converting date and/or time from character string.

有没有办法在SQL Server中处理这种情况?

请注意:我正在尝试使用SQL存储过程实现以下ADF代码。

代码语言:javascript
复制
coalesce(toDate(DOB,'MM/dd/yyyy')
        ,toDate(DOB,'yyyy/MM/dd')
        ,toDate(DOB,'yyyyMMdd')
        ,toDate(DOB,'MMddyyyy')
        ,toDate(DOB,'yyyy-MM-dd'))
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-05-24 21:00:50

据我所知,目前还没有MMddyyyy的样式代码,所以最简单的方法可能是先将字符串转换为yyyyMMdd,例如

代码语言:javascript
复制
CONCAT(RIGHT(@dt, 4), LEFT(@dt, 4))

然后将其转换为日期:

代码语言:javascript
复制
DECLARE @dt varchar(8)= '02022020';
SELECT CONVERT(DATE, CONCAT(RIGHT(@dt, 4), LEFT(@dt, 4)), 112)
票数 2
EN

Stack Overflow用户

发布于 2021-05-24 21:52:22

下面是处理所有格式的SQL语句。

代码语言:javascript
复制
MM/dd/yyyy
yyyy/MM/dd
yyyyMMdd
yyyy-MM-dd
MMddyyyy


  DECLARE @date varchar(10)= '2020-03-15';
    SELECT CASE
               WHEN @date IS NULL
               THEN NULL
               WHEN TRY_CONVERT(DATE, @date) IS NOT NULL
               THEN CAST(@date AS DATE) 
               WHEN TRY_CONVERT(DATE, @date) IS NULL
               THEN CONVERT(DATE, CONCAT(RIGHT(@date, 4), LEFT(@date, 4)), 112)
           END;
票数 0
EN

Stack Overflow用户

发布于 2021-05-24 21:02:37

你有没有尝试过下面的方法?选择格式(yourdate,'MM-dd-yy')。让我知道

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67672426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档