2014-10-06 57 views
-1

我有一个变量为time(7),但它给了我的值如:'17:25'。我希望它是这种格式:'5:25 PM'。有没有办法做到这一点在2012年SQL没有做这样的事情:如何将时间(7)格式从24更改为12?

DECLARE @aux NVARCHAR(8)='16:45:00' 
SELECT CONVERT(VARCHAR(15),CAST(@aux AS TIME),100) 

Code gotten from here

+1

即使你引述[这](HTTP ://stackoverflow.com/questions/11745958/sql-format-time-object-from-24-hour-to-12/11746597#11746597)页面,你不认为你的问题是相同的? – 2014-10-06 13:13:02

+0

格式化几乎总是最好由您的表示层处理。是否有任何理由不利于您使用已发布的解决方案? – GarethD 2014-10-06 13:14:08

+0

@GarethD - 我发现奇怪的是时间变量不允许时间格式不同。查看SQL 2012中是否有其他方法来执行此操作,但SQL Server的早期版本中没有。 – dotnetN00b 2014-10-06 13:18:22

回答

4

不,你不能做的格式SQL服务器中的任何使用存储时间数据类型。您只能使用像您在查询时提到的那样的技巧以期望的格式提供输出。或者更好的是,在前端应用程序中进行格式化。

0

,你可以尝试使用DATEPART(HH ...用case语句或IF/ELSE改变过去的中午,和CONCAT上午或下午的时间就结束

相关问题