你的电流SET
甚至不起作用。当你有一个来自字符串文字的有效日期时间值时,你可以这样做:
DECLARE @adddate DATETIME;
SET @adddate = '2011-07-06T22:30:07.521';
SELECT CONVERT(CHAR(11), @adddate, 103)
+ LTRIM(RIGHT(CONVERT(CHAR(20), @adddate, 22), 11));
结果:
06/07/2011 10:30:07 PM
如果你真的想要 m/d/y (你的问题是模棱两可的),使用样式 22 的路径稍微短一些:
DECLARE @adddate DATETIME;
SET @adddate = '2011-07-06T22:30:07.521';
SELECT STUFF(CONVERT(CHAR(20), @adddate, 22), 7, 2, YEAR(@adddate));
结果:
07/06/2011 10:30:07 PM
但是,这是一个坏主意,原因有两个:
区域格式令人困惑(读者会知道 2013 年 5 月 6 日是 5 月 6 日而不是 6 月 5 日吗?取决于他们来自哪里)甚至是危险的(如果他们将该字符串传回,您可能会在他们的意思时存储 6 月 5 日5 月 6 日)。
您的客户端语言最好使用它自己的Format()
或ToString()
方法来格式化它以便在最后一刻显示。