我需要转换格式为 2012-10-15 15:00:21.970
至欧洲:15/10/2012 15:00:21
CONVERT(nvarchar, @DateTime, 103) + N' ' + CONVERT(nvarchar, @DateTime, 8)
-- 15/10/2012 15:00:21
致美国:2012 年 10 月 15 日 03:00:21 PM
CONVERT(NVARCHAR, @DateTime, 101)
-- 10/15/2012
我无法计算出美国换算的时间部分。我可能可以使用 DATEPART 来完成此操作,但此函数将在 select 语句中格式化时间,因此我尝试使其尽可能简单。有什么想法吗?
资源:http://www.w3schools.com/sql/func_convert.asp
想通了
DECLARE @DateTime datetime = '2012-10-15 15:00:21.970'
SELECT
CONVERT(nvarchar, @DateTime, 101) + N' ' +
LEFT(N'0' + RIGHT(CONVERT(nvarchar, @DateTime, 109), 13), 8) + N' ' +
CASE WHEN DATEPART(HH,@DateTime) < 13
THEN 'AM'
ELSE 'PM'
END
最佳答案
SELECT CONVERT(NVARCHAR, @DateTime, 101) + N' ' +CONVERT(NVARCHAR, CAST(@DateTime AS time(0)), 109)
关于sql - 将日期时间转换为美国和欧洲日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17679009/