2

我有按 ddmmyy 顺序排列的字符串,即“231013”,我需要将其转换为 dd-mm-yy 格式,我尝试遵循但它给出了 yyyy-dd-mm 格式

我知道 105 会给出 dd-mm-yy 格式

    DECLARE @ITEMS AS NVARCHAR(10)='231013'

    SELECT CONVERT(DATE,@ITEMS,105) 

但它正在回归

2023-10-13 如何将 ddmmyy 顺序的字符串转换为日期 dd-mm-yy

4

3 回答 3

1

按 ddmmyy 顺序将字符串转换为日期 dd-mm-yy

DECLARE @ITEMS AS NVARCHAR(10)='231013'
SELECT CONVERT(varchar(25),
CONVERT(DATE, SUBSTRING(@ITEMS, 1, 2) + '-' + SUBSTRING(@ITEMS, 3, 2) + '-' + SUBSTRING(@ITEMS, 5, 2), 5),5)

结果将是

图片

于 2016-10-21T11:24:38.517 回答
0

如果您只需要更改格式(不转换为 DateTime 类型),您可以Stuff()

Declare @Items as nvarchar(10)='231013' --ddmmyy

Select Stuff(Stuff(@Items,3,0,'-'),6,0,'-')  --dd-mm-yy 

小提琴演示

于 2013-11-01T15:26:06.940 回答
0

CONVERT似乎不支持mmddyy该样式;要执行转换,我只需将输入字符串调整为支持的样式之一,例如:mm-dd-yy

SELECT 
   CONVERT(DATE, SUBSTRING(@ITEMS, 1, 2) + '-' + SUBSTRING(@ITEMS, 3, 2) + '-' + 
                 SUBSTRING(@ITEMS, 5, 2), 5)
于 2013-11-01T13:00:54.340 回答