小编典典

将DateTime转换为美国和欧洲

sql

我需要将日期转换为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

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

阅读 173

收藏
2021-04-28

共1个答案

小编典典

SELECT CONVERT(NVARCHAR, @DateTime, 101) + N' ' +CONVERT(NVARCHAR, CAST(@DateTime AS time(0)), 109)
2021-04-28