首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仅在SQL查询中显示AM/PM的时间?

如何仅在SQL查询中显示AM/PM的时间?
EN

Stack Overflow用户
提问于 2013-04-02 16:37:23
回答 5查看 66.1K关注 0票数 7

我有以下问题,我正在使用SQL Server MS及以下是我的结果。看上去很简单,但我想不出来。

我的问题是:

代码语言:javascript
复制
SELECT  RIGHT(CONVERT(VARCHAR(26), Timein, 109), 14) from vwSignIn

会给我这个作为9:12:16:597

我要这个9:12:16 作为我的结果。

提前谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-04-02 16:43:43

有一种方法你可以做到:

代码语言:javascript
复制
CONVERT(VARCHAR(8), Timein, 108) + ' ' + RIGHT(CONVERT(VARCHAR(30), Timein, 9), 2) 

SQL Fiddle演示

票数 13
EN

Stack Overflow用户

发布于 2013-04-02 16:57:23

下面是一种只有一个转换的方法:

代码语言:javascript
复制
SELECT RIGHT(CONVERT(CHAR(20), GETDATE(), 22), 11);

但是,您应该考虑在客户端格式化这一点,在客户端,字符串格式的功能要强大得多,而且更合适。

在Server 2012中,您将能够使用FORMAT(),这意味着您不必记住所有这些样式数字(但我仍然认为最好在可能的情况下在表示层中这样做):

代码语言:javascript
复制
SELECT FORMAT(GETDATE(), 'hh:mm:ss tt');

请注意,相对于其他方法,FORMAT()是昂贵的:

票数 19
EN

Stack Overflow用户

发布于 2014-06-11 18:11:49

我觉得这样会更优雅一些:

代码语言:javascript
复制
SELECT LTRIM(Right(REPLACE(CONVERT(nvarchar(MAX),CAST(GetDate() as smalldatetime), 109),':00:000', ' '), 8));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15769503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档