SQL Server中的时间格式

Jin*_*ong 11 t-sql sql-server time

有谁知道如何格式化select语句datetime值只显示SQL Server中的时间?

例:

Table cuatomer
id   name   datetime
1    Alvin  2010-10-15 15:12:54:00
2    Ken    2010-10-08 09:23:56:00
Run Code Online (Sandbox Code Playgroud)

当我选择表格时,我喜欢结果将显示如下

id   name    time
1    Alvin   3:12PM
2    Ken     9:23AM
Run Code Online (Sandbox Code Playgroud)

我能用mssql做的任何方式吗?

Lit*_*les 11

您可以使用CONVERT,RIGHT和TRIM的组合来获得所需的结果:

SELECT ltrim(right(convert(varchar(25), getdate(), 100), 7))
Run Code Online (Sandbox Code Playgroud)

100你的函数看到指定的日期格式mon dd yyyy hh:miAM (or PM),并从那里,我们只是抓住正确的字符.

您可以在此处查看有关转换日期时间的详情.

  • @Pavan - 我添加了TRIM,因为除了上午10点,11点或12点之外的时间可能有一个领先的空间.我不喜欢格式108,因为它不包括@Jin Yong所要求的AM/PM. (3认同)

bob*_*obs 10

您可以像这样使用CONVERT函数:

SELECT CONVERT(varchar, your_datetime, 108)
Run Code Online (Sandbox Code Playgroud)

但是,这是24小时制,没有AM/PM.


Pav*_*van 6

这将从日期时间值获取时间,并且还将am或pm添加

SELECT RIGHT('0'+LTRIM(RIGHT(CONVERT(varchar,getDate(),100),8)),7) 
Run Code Online (Sandbox Code Playgroud)

将始终以HH:mmAM格式返回日期.

注意缺乏空间

要么

SELECT REPLACE(REPLACE(RIGHT('0'+LTRIM(RIGHT(CONVERT(varchar,getDate(),100),7)),7),'AM',' AM'),'PM',' PM')
Run Code Online (Sandbox Code Playgroud)

将始终以HH:mm AM格式返回日期.

希望有所帮助.

PK