SQL 从 Getdate() 获取时间
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/7664608/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Get Time from Getdate()
提问by Newkidirus
I would like to take the Getdate()
results of,
我想采取的Getdate()
结果,
for example
例如
2011-10-05 11:26:55.000
into
进入
11:26:55 AM
I have looked other places and found
我看过其他地方,发现
Select RIGHT(CONVERT(VARCHAR, GETDATE(), 100),7)
which gives me
这给了我
11:26AM
It's so close I can taste it!
离得这么近我都能尝到!
回答by Jamiec
select convert(varchar(10), GETDATE(), 108)
returned 17:36:56
when I ran it a few moments ago.
17:36:56
几分钟前我运行它时返回。
回答by Nilesh Thakkar
You might want to check out thisold thread.
你可能想看看这个旧线程。
If you can omit AM/PM portion and using SQL Server 2008, you should go with the approach suggested here
如果您可以省略 AM/PM 部分并使用 SQL Server 2008,则应采用此处建议的方法
To get the rid from nenoseconds in time(SQL Server 2008), do as below :
要及时摆脱纳秒(SQL Server 2008),请执行以下操作:
SELECT CONVERT(TIME(0),GETDATE()) AS HourMinuteSecond
I hope it helps!!
我希望它有帮助!!
回答by k.parnell
To get the format you want:
要获得您想要的格式:
SELECT (substring(CONVERT(VARCHAR,GETDATE(),22),10,8) + ' ' +
SUBSTRING(CONVERT(VARCHAR,getdate(),22), 19,2))
SELECT (substring(CONVERT(VARCHAR,GETDATE(),22),10,8) + ' ' +
SUBSTRING(CONVERT(VARCHAR,getdate(),22), 19,2))
Why are you pulling this from sql?
你为什么要从 sql 中提取这个?
回答by Marcelo
Did you try to make a cast from date to time?
你有没有试着不时地做演员?
select cast(getdate() as time)
select cast(getdate() as time)
Reviewing the question, I saw the 'AM/PM' at end. So, my answer for this question is:
回顾这个问题,我在结尾看到了“AM/PM”。所以,我对这个问题的回答是:
select format(getdate(), 'hh:mm:ss tt')
select format(getdate(), 'hh:mm:ss tt')
Run on Microsoft SQL Server 2012 and Later.
在 Microsoft SQL Server 2012 及更高版本上运行。
回答by A.Ghandour
You can use the datapart to maintain time date type and you can compare it to another time.
Check below example:
您可以使用数据部分来维护时间日期类型,并且可以将其与其他时间进行比较。
检查以下示例:
declare @fromtime time = '09:30'
declare @totime time
SET @totime=CONVERT(TIME, CONCAT(DATEPART(HOUR, GETDATE()),':', DATEPART(MINUTE, GETDATE())))
if @fromtime <= @totime
begin print 'true' end
else begin print 'no' end
回答by Ardi
Let's try this
让我们试试这个
select convert(varchar, getdate(), 108)
Just try a few moment ago
刚才试了一下
回答by Techniical Ravi
You will be able to get the time using below query:
您将能够使用以下查询获取时间:
select left((convert(time(0), GETDATE ())),5)
回答by Wil
If it's SQL Server 2005 there is no TIME
datatype. The easiest way to get only the time component is to set the date to 1/1/1900.
如果是 SQL Server 2005,则没有TIME
数据类型。仅获取时间分量的最简单方法是将日期设置为 1/1/1900。
DECLARE @time DATETIME
SET @Time = GETDATE()
SELECT DATEADD(dd,DATEDIFF(dd,@time,'1/1/1900'),@time)