我有一个变量为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)
我有一个变量为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)
不,你不能做的格式SQL服务器中的任何使用存储时间数据类型。您只能使用像您在查询时提到的那样的技巧以期望的格式提供输出。或者更好的是,在前端应用程序中进行格式化。
,你可以尝试使用DATEPART(HH ...用case语句或IF/ELSE改变过去的中午,和CONCAT上午或下午的时间就结束
即使你引述[这](HTTP ://stackoverflow.com/questions/11745958/sql-format-time-object-from-24-hour-to-12/11746597#11746597)页面,你不认为你的问题是相同的? – 2014-10-06 13:13:02
格式化几乎总是最好由您的表示层处理。是否有任何理由不利于您使用已发布的解决方案? – GarethD 2014-10-06 13:14:08
@GarethD - 我发现奇怪的是时间变量不允许时间格式不同。查看SQL 2012中是否有其他方法来执行此操作,但SQL Server的早期版本中没有。 – dotnetN00b 2014-10-06 13:18:22