首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有两个标准的SQL列到日期列

具有两个标准的SQL列到日期列
EN

Stack Overflow用户
提问于 2022-06-28 09:00:38
回答 1查看 45关注 0票数 -2

我有一个列varchar(2048)的表,里面有日期格式的数据。

但我的数据格式是"20/12/2021“(英国标准)和"12/20/2021”(美国标准)。

我可以将varchar列转换成日期列中的varchar列吗?

EN

回答 1

Stack Overflow用户

发布于 2022-06-28 09:39:07

这是一个数据/业务问题,因此需要了解数据/业务的人做出进一步的决定。

由于您不知道这些数据的格式是什么,所以可以计算出一些,但不是全部--例如:

代码语言:javascript
运行
复制
SELECT 
    *,
    SUBSTRING(D.Date, 0, CHARINDEX('/', D.Date)),
    SUBSTRING(D.Date, CHARINDEX('/', D.Date) + 1, CHARINDEX('/', D.Date, CHARINDEX('/', D.Date)) - 1),

    CASE 
        WHEN SUBSTRING(D.Date, 0, CHARINDEX('/', D.Date)) > 12 THEN 'UK Date'
        WHEN SUBSTRING(D.Date, CHARINDEX('/', D.Date) + 1, CHARINDEX('/', D.Date, CHARINDEX('/', D.Date)) - 1) > 12 THEN 'US Date'
        ELSE 'Indeterminate Date'
    END
FROM 
    ( VALUES 
        ('30/05/2020'),
        ('10/25/2020'),
        ('08/06/2020')
    ) AS D (Date);

您需要准备一个不确定日期的列表,并使用数据中的其他信息来确定哪一个是哪一个。例如,如果这些是订单日期,而且还有发货日期,则可以计算出这些日期,因为您期望日期接近:

订购日期:02/06/2020发运日期:02/09/2020

因此(除非你的公司需要3个月的时间发送),这是一个美国的日期。

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

https://stackoverflow.com/questions/72783574

复制
相关文章

相似问题

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