我有一个列varchar(2048)的表,里面有日期格式的数据。
但我的数据格式是"20/12/2021“(英国标准)和"12/20/2021”(美国标准)。
我可以将varchar列转换成日期列中的varchar列吗?
发布于 2022-06-28 09:39:07
这是一个数据/业务问题,因此需要了解数据/业务的人做出进一步的决定。
由于您不知道这些数据的格式是什么,所以可以计算出一些,但不是全部--例如:
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个月的时间发送),这是一个美国的日期。
https://stackoverflow.com/questions/72783574
复制相似问题