我正在使用此代码使用SQL格式化日期:
convert(VARCHAR, DT, 20)
输出结果为:
2016-01-01 20:40:12
但我如何才能获得第一天。
我想得到:dd-mm-yyyy:
01-01-2016 20:40:12
当我查看此表时: http://www.blackwasp.co.uk/sqldatetimeformats.aspx 我没有看到这种格式。
THX!
答案 0 :(得分:2)
dd / mm / yyyy hh:mi:ss
(CONVERT(varchar, DT, 103) + ' ' + CONVERT(varchar, DT, 108)) AS MyEuropeanDate
dd-mm-yyyy hh:mi:ss
(CONVERT(varchar, DT, 105) + ' ' + CONVERT(varchar, DT, 108)) AS MyEuropeanDate
为了理解下一次,请查看Gordon在评论中明智地联系的官方文件: https://msdn.microsoft.com/en-us/library/ms187928.aspx
答案 1 :(得分:0)
无法找到本机tSQL函数,但您可以执行以下操作:
DECLARE @Date DATETIME = '20160101';
SELECT CASE
WHEN LEN(CAST(DAY(@Date) AS VARCHAR)) = 1 THEN '0'+CAST(DAY(@Date) AS VARCHAR)
ELSE CAST(DAY(@Date) AS VARCHAR)
END
+'-'+
CASE
WHEN LEN(CAST(MONTH(@Date) AS VARCHAR)) = 1 THEN '0'+CAST(MONTH(@Date) AS VARCHAR)
ELSE CAST(MONTH(@Date) AS VARCHAR)
END
+'-'+
CAST(YEAR(@Date) AS VARCHAR)
+' '+
SUBSTRING(CONVERT(VARCHAR, @Date, 114), 1, 8);
或者你可以这样做:
DECLARE @Date DATETIME = '20160101';
SELECT (REPLACE(CONVERT(varchar, @Date, 103),'/','-') + ' ' + CONVERT(varchar, @Date, 108))
结果: