sql - 小时,月等的开始

时间:2009-09-17 14:34:47

标签: sql sql-server sql-server-2005 tsql

我知道如何在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(我不关心确切的格式)

你能帮帮我吗?提前致谢

5 个答案:

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