我有以下问题,我正在使用SQL Server MS及以下是我的结果。看上去很简单,但我想不出来。
我的问题是:
SELECT RIGHT(CONVERT(VARCHAR(26), Timein, 109), 14) from vwSignIn会给我这个作为9:12:16:597
我要这个9:12:16 作为我的结果。
提前谢谢。
发布于 2013-04-02 16:43:43
有一种方法你可以做到:
CONVERT(VARCHAR(8), Timein, 108) + ' ' + RIGHT(CONVERT(VARCHAR(30), Timein, 9), 2) 发布于 2013-04-02 16:57:23
下面是一种只有一个转换的方法:
SELECT RIGHT(CONVERT(CHAR(20), GETDATE(), 22), 11);但是,您应该考虑在客户端格式化这一点,在客户端,字符串格式的功能要强大得多,而且更合适。
在Server 2012中,您将能够使用FORMAT(),这意味着您不必记住所有这些样式数字(但我仍然认为最好在可能的情况下在表示层中这样做):
SELECT FORMAT(GETDATE(), 'hh:mm:ss tt');请注意,相对于其他方法,FORMAT()是昂贵的:
发布于 2014-06-11 18:11:49
我觉得这样会更优雅一些:
SELECT LTRIM(Right(REPLACE(CONVERT(nvarchar(MAX),CAST(GetDate() as smalldatetime), 109),':00:000', ' '), 8));https://stackoverflow.com/questions/15769503
复制相似问题