SQL将datetime转换为varchar

Kci*_*ird 1 sql t-sql sql-server datetime sql-server-2012

我想像这样将Datetime转换为Varchar

10/09/2018 12:00:00.000
Run Code Online (Sandbox Code Playgroud)

我试过用

Convert(VARCHAR(MAX),[Date & Time Added]),121)
Run Code Online (Sandbox Code Playgroud)

但它回来了

yyyy-mm-dd hh:mi:ss.mmm
Run Code Online (Sandbox Code Playgroud)

我需要/时间格式,我正在使用SQL Server 2012.

Sal*_*n A 6

你可以使用这个FORMAT功能:

SELECT FORMAT(GETDATE(), 'MM/dd/yyyy HH:mm:ss.fff')
-- 10/09/2018 00:58:52.557
Run Code Online (Sandbox Code Playgroud)

.NET文档中实际提供了完整的格式说明符列表.


如果FORMAT功能不可用,您只需以已知格式进行格式化,并使用字符串函数重新排列年,月,日和时间部分.例如:

SELECT SUBSTRING(DateStr, 6, 2) + '/' + SUBSTRING(DateStr, 9, 2) + '/' + SUBSTRING(DateStr, 1, 4) + ' ' + SUBSTRING(DateStr, 12, 12)
FROM (
    SELECT CONVERT(VARCHAR(23), GETDATE(), 126) -- ISO8601 / yyyy-mm-ddThh:mi:ss.mmm
) AS CA(DateStr)
-- 10/09/2018 01:12:50.833

SELECT CONVERT(VARCHAR(10), Date, 101) + ' ' + CONVERT(VARCHAR(12), Date, 114)
FROM (
    SELECT GETDATE()
) AS CA(Date)
-- 10/09/2018 01:19:38:463
Run Code Online (Sandbox Code Playgroud)