如何使用 sql server 2008 r2 将日期显示为 mm/dd/yyyy hh:mm Am/PM?

问题描述 投票:0回答:10

我的示例查询是

SELECT D30.SPGD30_LAST_TOUCH_Y
from CSPGD30_TRACKING D30 

我给定的日期格式类似于

"2013-01-01 00:00:00.000"
。我需要将此日期格式转换为
"mm/dd/yyyy hh:mm AM/PM"
。你对此有什么想法吗?

sql sql-server sql-server-2008 sql-server-2005 sql-server-2008-r2
10个回答
42
投票

我认为没有单一的格式可以同时提供它们。使用

Convert
尝试一下; Sql-演示

declare @mydate datetime = getdate()
select convert(varchar(10),@mydate, 101) + right(convert(varchar(32),@mydate,100),8)

|           COLUMN_0 |
----------------------
| 02/22/2013  9:36AM |

37
投票

FORMAT() 函数从 2012 版本开始可用。 升级后即可使用

select FORMAT(@date,'MM/dd/yyyy hh:mm:s tt')

1
投票

用这个

select CONVERT(VARCHAR(10), mydate, 101) + ' ' + RIGHT(CONVERT(VARCHAR, mydate, 100), 7) from tablename

1
投票

试试这个

 SELECT convert(varchar(20), GetDate(), 0);

仅提取 AM/PM

substring(convert(varchar(30), GetDate(), 9), 25, 2);

小提琴


1
投票

使用以下场景获取日期、时间、日、月、年、小时、分钟、秒、AM/PM

:)

SELECT UpdatedOn ,
  CONVERT(varchar,UpdatedOn,100) DateTime,
  CONVERT(varchar,UpdatedOn,10) Date ,
  CONVERT(varchar,UpdatedOn,108) Time ,
  substring(CONVERT(varchar,UpdatedOn,106),1,2) Day,
  substring(CONVERT(varchar,UpdatedOn,106),4,3) CMonth,
  substring(CONVERT(varchar,UpdatedOn,105),4,2) NMonth,
  substring(CONVERT(varchar,UpdatedOn,106),8,4) Year,
  left(right(CONVERT(varchar,UpdatedOn,100),7),2) Hours_12,
  substring(CONVERT(varchar,UpdatedOn,108),1,2) Hours_24,
  substring(CONVERT(varchar,UpdatedOn,108),4,2) Minutes,
  substring(CONVERT(varchar,UpdatedOn,108),7,2) Second,
  right(CONVERT(varchar,UpdatedOn,100),2) AM_PM 
FROM dbo.DeviceAssignSim 
WHERE AssignSimId=55;

0
投票

你可以这样做:

SELECT CONVERT(VARCHAR(10), GETDATE(), 101) AS [MM/DD/YYYY]

欲了解更多信息,请查看:

日期格式


0
投票

使用

convert
方法格式化
datetime
值。示例:

select convert(varchar(20), D30.SPGD30_LAST_TOUCH_Y, 101)

第三个参数决定格式。您可以在转换和转换文档中找到可用的格式。


0
投票

用这个

Select (Convert(Varchar,GetDate(),101))+' '+(Right(('0'+(LTrim((Left((Right((Convert(Varchar,GetDate(),100)),7)),5))))),5))+' '+(Right((Convert(Varchar,GetDate(),100)),2))

0
投票

我意识到这是一个 8 年前的问题,但它的答案有很多种,但没有一个足够简单。我发现这很简单,并且与用户要求的内容相匹配(年份是两位数,并且存在秒),假设他获得的日期来自 GETDATE(),这并不重要,但这就是我的答案来自哪里。

SELECT CONVERT(varchar, D30.SPGD30_LAST_TOUCH_Y, 22) AS [DateTime]

12/16/20 10:19:18 AM

0
投票

您可以使用此查询,它也会给出 AM 和 PM。 选择格式(GETDATE(), 'yyyy-MM-dd hh:mm:ss tt') AS requestDateFormat;

© www.soinside.com 2019 - 2024. All rights reserved.