将字符串数据类型日期值转换成日期格式dd-mm-yyyy
Convert string data type date value into date format dd-mm-yyyy
这是要转换的给定值:
DECLARE @Dt VARCHAR(20) = '16-12-1997 00:00:00'
我想转换成:16-12-1997
尝试 #1:
SELECT CAST(@Dt AS DATE)
错误:
Conversion failed when converting date and/or time from character string.
尝试 #2:
SELECT CONVERT(VARCHAR(20), @Dt, 105)
结果:
16-12-1997 00:00:00
尝试 #3:
SELECT LEFT(@Dt, 10)
尝试 #3 可行,但 convert/cast 是否可行?
这可以通过以下方式完成:
DECLARE @Dt VARCHAR(20) = '16-12-1997 00:00:00'
SELECT CONVERT(varchar(10), @Dt);
这是您要找的东西吗?
另一种方法是,如果日期无效,它会出错,并且只允许真实日期
DECLARE @Dt VARCHAR(20) = '16-12-1997 00:00:00'
SELECT format(CONVERT(DATE, @Dt,105),'dd-MM-yyyy');
这是要转换的给定值:
DECLARE @Dt VARCHAR(20) = '16-12-1997 00:00:00'
我想转换成:16-12-1997
尝试 #1:
SELECT CAST(@Dt AS DATE)
错误:
Conversion failed when converting date and/or time from character string.
尝试 #2:
SELECT CONVERT(VARCHAR(20), @Dt, 105)
结果:
16-12-1997 00:00:00
尝试 #3:
SELECT LEFT(@Dt, 10)
尝试 #3 可行,但 convert/cast 是否可行?
这可以通过以下方式完成:
DECLARE @Dt VARCHAR(20) = '16-12-1997 00:00:00'
SELECT CONVERT(varchar(10), @Dt);
这是您要找的东西吗?
另一种方法是,如果日期无效,它会出错,并且只允许真实日期
DECLARE @Dt VARCHAR(20) = '16-12-1997 00:00:00'
SELECT format(CONVERT(DATE, @Dt,105),'dd-MM-yyyy');