将日期时间转换为 varchar(50)

convert datetime to varchar(50)

需要帮助将日期时间转换为给定格式的 varchar

2015-01-04 16:07:37.000"

01/04/2015 16:07PM

这是尝试过的:

convert(varchar(20),datetime,103)+ ' '+convert(varchar(20),datetime,108)+ ' ' +right(convert(varchar(30),datetime,109),2)

这将适用于 sqlserver SQLFiddle 关于此演示

SELECT convert(varchar, getdate(), 103) 
+' '+ CONVERT(varchar(15),CAST(getdate() AS TIME),100)

这将从当前日期时间获取您的字符串,格式为 06/22/15 1:46:07 PM

 SELECT CONVERT(VARCHAR(50), GETDATE(), 22) 

尝试使用格式

SELECT FORMAT(GETDATE(), 'g')

这将得到 6/22/2015 1:57 PM.

您始终可以使用 DATEPART 自行构建...

SELECT
    RIGHT('0' + CONVERT(nvarchar(max), DATEPART(m, Date_Field)), 2) + '/' + 
    RIGHT('0' + CONVERT(nvarchar(max), DATEPART(d, Date_Field)), 2) + '/' + 
    CONVERT(nvarchar(max), DATEPART(yyyy, Date_Field))  + ' ' + 
    RIGHT('0' + CONVERT(nvarchar(max), DATEPART(hour, Date_Field)), 2) + ':' + 
    RIGHT('0' + CONVERT(nvarchar(max), DATEPART(minute, Date_Field)), 2) + 
    RIGHT(CONVERT(VARCHAR(30), Date_Field, 9), 2) 

然后您可以在日期和时间之间使用自定义分隔符,根据需要添加秒(或毫秒等)。如果您发现需要大量使用它,请将其包装在 UDF 中。