我有一张桌子,其中一个datetime
colomn如下:
tbTest
ID int
SetDate datetime
和一个条目如:
ID SetDate
1 04/10/2014 2:38:16 PM
我想将SetDate转换为dd-mm-yyyy hh:mm:ss PM
或dd-mm-yyyy hh:mm PM
期望的输出:
ID SetDate
1 10-04-2014 2:38:16 PM
或
1 10-04-2014 2:38 PM
答案 0 :(得分:4)
您可以使用sql convert方法获取所需的输出:-23-04-2014 10:16 AM
SELECT CONVERT(VARCHAR(10), getdate(), 105) + ' ' + REPLACE(REPLACE(RIGHT('0'+LTRIM(RIGHT(CONVERT(varchar,getDate(),100),7)),7),'AM',' AM'),'PM',' PM')
答案 1 :(得分:2)
您可以使用convert
select convert(varchar(10), getdate(), 105) + ' ' +
SUBSTRING(CONVERT(varchar, getdate(), 100), 14, 4)+ ' ' +
RIGHT(convert(varchar, getdate(), 100), 2)
答案 2 :(得分:0)
SELECT replace(convert(NVARCHAR(100), getdate(), 106), ' ', '-')
+' ' + CONVERT(VARCHAR(30), CAST(GETDATE()AS Time), 100)
答案 3 :(得分:0)
使用CONVERT
以及相应的样式:
SELECT CONVERT(CHAR(10), @SetDate, 110)
+ ' ' + SUBSTRING(CONVERT(CHAR(19), @SetDate, 100), 14, 4)
+ ' ' + SUBSTRING(CONVERT(CHAR(19), @SetDate, 100), 18, 2)
第一个是日期部分,第二个是12小时时间部分,最后一个是上午/下午指示符。
答案 4 :(得分:0)
您可以使用的最短且最好看的查询是:
SELECT CONVERT(VARCHAR(10), SetDate, 105) + ' ' +
CONVERT(VARCHAR(8), CAST(SetDate AS TIME), 100)
输出:
31-07-2001 12:00AM
不需要字符串操作。
另一个例子:
DECLARE @Date AS DATETIME
SET @Date = '2014-31-12 18:00:00'
SELECT CONVERT(VARCHAR(10), @Date, 105) + ' ' +
CONVERT(VARCHAR(8), CAST(@Date AS TIME), 100) AS FormatDate
输出:
31-12-2014 6:00PM