我有以下问题,我使用的是 SQL Server MS,下面是我的结果。它看起来很简单,但我无法弄清楚。
我的查询:
SELECT RIGHT(CONVERT(VARCHAR(26), Timein, 109), 14) from vwSignIn
早上 9:12:16:597会给我这个
我想要这个上午 9:12:16作为我的结果。
提前致谢。
我有以下问题,我使用的是 SQL Server MS,下面是我的结果。它看起来很简单,但我无法弄清楚。
我的查询:
SELECT RIGHT(CONVERT(VARCHAR(26), Timein, 109), 14) from vwSignIn
早上 9:12:16:597会给我这个
我想要这个上午 9:12:16作为我的结果。
提前致谢。
这是一种只有一次转换的方法:
SELECT RIGHT(CONVERT(CHAR(20), GETDATE(), 22), 11);
但是,您应该考虑在客户端对其进行格式化,因为字符串格式化更加强大和合适。
在 SQL Server 2012 中,您将能够使用FORMAT()
,这意味着您不必记住所有这些样式编号(但我仍然认为您最好尽可能在表示层中执行此操作):
SELECT FORMAT(GETDATE(), 'hh:mm:ss tt');
这是您可以做到的一种方法:
CONVERT(VARCHAR(8), Timein, 108) + ' ' + RIGHT(CONVERT(VARCHAR(30), Timein, 9), 2)
我发现这种方式更优雅一点:
SELECT LTRIM(Right(REPLACE(CONVERT(nvarchar(MAX),CAST(GetDate() as smalldatetime), 109),':00:000', ' '), 8));
SELECT substring(convert(varchar(20), GetDate(), 9), 13, 5) + ' ' + substring(convert(varchar(30), GetDate(), 9), 25, 2)
我猜最简单的方法是:
select ISNULL(CONVERT(VARCHAR(10), Timein, 100), '')