我知道如何在SQL(SQL Server)中获取当前日期,但是在当天开始时:
select dateadd(DAY, datediff(day, 0, getdate()),0)
(result:2009-09-17 00:00:00.000)
我需要来获取(在SQL中)本小时开头的当前日期。 例如:2009-09-17 17:00:00(我不关心确切的格式)
和我需要来获取当前日期,但是在本月初: 例如:2009-09-01 00:00:00.000(我不关心确切的格式)
你能帮帮我吗?提前致谢答案 0 :(得分:50)
只需调整当前的一天开始代码!
你想要的只是月初,小时开始。它只是一样......
select dateadd(month, datediff(month, 0, getdate()),0)
select dateadd(hour, datediff(hour, 0, getdate()),0)
答案 1 :(得分:6)
试试这个:
CAST(CAST(SYSDATETIME() AS DATE) AS DATETIME)
答案 2 :(得分:5)
最短的一个是:CAST(CURRENT_TIMESTAMP AS DATE)
答案 3 :(得分:2)
试试这个
select DATEADD(hh,17,dateadd(DAY, datediff(day, 0, getdate()),0))
SELECT CAST('01 ' + CAST(DATENAME(MM, getdate()) AS VARCHAR(15)) + CAST(DATEPART(yyyy, GETDATE()) AS VARCHAR(5)) AS DATETIME)
答案 4 :(得分:2)
或者你可以试试这个
白天:select CONVERT( datetime, convert( varchar(8), getdate(), 112))
月份:select CONVERT( datetime, convert( varchar(6), getdate(), 112)+ '01')
年份:select CONVERT( datetime, convert( varchar(4), getdate(), 112)+ '0101')