我是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。
答案 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')