日期格式返回为mm / dd / yyyy hh:mm:ss AM / PM

时间:2014-09-26 16:13:44

标签: sql date datetime sql-server-2012

我是sql的新手我的公司只是有点把我扔进去,并说这样做。所以任何帮助都非常感谢。我试图以mm / dd / yyyy hh:mm:ss AM / PM的格式得出日期,例如日期为09/26/2014 11:04:54 AM。我尝试过使用代码:

Select Convert(nvarchar,EntryDate,101)
From DB1

然而,这只会在09/26/2014返回。 我也试过

Select Convert(nvarchar,EntryDate,100)
From DB1

但这将于2014年9月26日上午11:04返回

不知道从哪里开始。再一次感谢你的帮助。顺便说一下,我正在使用SQL Server 2012。

8 个答案:

答案 0 :(得分:13)

DECLARE @Date_Value DATETIME = GETDATE();


SELECT CONVERT(VARCHAR(10), @Date_Value, 101) + ' ' 
       + LTRIM(RIGHT(CONVERT(CHAR(20), @Date_Value, 22), 11))


RESULT: 09/26/2014 5:25:53 PM

您的查询

SELECT CONVERT(VARCHAR(10), EntryDate, 101) + ' ' 
       + LTRIM(RIGHT(CONVERT(CHAR(20), EntryDate, 22), 11))
From DB1

答案 1 :(得分:8)

由于您使用的是SQL 2012,因此格式化功能应该起作用:

declare @date datetime = '2014-09-26 11:04:54'
select FORMAT(@date,'MM/dd/yyyy hh:mm:s tt')

结果:09/26/2014 11:04:54 AM

在你的情况下,它将是:

Select FORMAT(EntryDate,'MM/dd/yyyy hh:mm:s tt')
From DB1

答案 2 :(得分:1)

    > select convert(varchar(20),GETDATE(),1)+' '+convert(varchar(20),convert(time,getdate()),100)
    > select convert(varchar(20),GETDATE(),103)+' '+convert(varchar(20),convert(time,getdate()),100)
    > select convert(varchar(20),GETDATE(),103)+' '+convert(varchar(20),convert(time,getdate()),22)


    > Result (1) :-  10/15/2018 11:22AM (mm/dd/yyyy hh:mm AM/PM)
    > Result (2):-  15/10/2018 11:22AM (dd/mm/yyyy hh:mm AM/PM)
    > Result (3):-  15/10/2018 11:22:35 AM (dd/mm/yyyy hh:mm:ss AM/PM)

答案 3 :(得分:0)

您应该这样做以您要求的格式转换日期DATE_FORMAT(日期,'%m%d%Y%h:%i%p')。其中date是您要转换的日期。

我希望这会有所帮助。

答案 4 :(得分:0)

使用两种格式并将它们与REPLACE和SUBSTRING函数连接。

   select CONVERT(nvarchar(128), dbo.GetDateTime(@input), 101) + 
           REPLACE(SUBSTRING(CONVERT(nvarchar(128), 
           dbo.GetDateTime(@input), 109), 12 , 128),':000', ' ')

答案 5 :(得分:0)

结合两种格式:

select convert(char(11),getdate(),103) 
      + stuff(right(convert(char(31),getdate(),130),14),9,4,' ')

的产率:

26/09/2014 12:29:09 PM

答案 6 :(得分:0)

这是解决同一问题的另一种方法。

Select Convert(char(10), getdate(),101) + Right(Convert(VarChar(20),getdate(),100),8)

答案 7 :(得分:0)

您可以在sql中使用FORMAT函数

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