3

我需要转换格式为 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 日下午 3:00:21

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
4

2 回答 2

2
SELECT CONVERT(NVARCHAR, @DateTime, 101) + N' ' +CONVERT(NVARCHAR, CAST(@DateTime AS time(0)), 109)
于 2013-07-16T14:23:25.410 回答
2

SQL Server 支持的格式列表,其中包括各种欧洲格式。例如,下面是德语日期格式 (dd.mm.yyyy) 的语句:

SELECT CONVERT(VARCHAR(10), GETDATE(), 104) AS [DD.MM.YYYY]
于 2013-07-16T14:27:26.553 回答