将datetime转换为varchar(50)

时间:2015-06-22 12:30:55

标签: sql sql-server-2008-r2

需要帮助将datetime转换为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)

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

这将从当前日期时间以06/22/15 1:46:07 PM

格式获取您的字符串
 SELECT CONVERT(VARCHAR(50), GETDATE(), 22) 

尝试使用格式

SELECT FORMAT(GETDATE(), 'g')

将获得6/22/2015 1:57 PM

答案 2 :(得分:0)

您始终可以使用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中。