Ответ 1
Просто адаптируйте текущий код начала дня!
Все, что вам нужно - это начало месяца, начало часа. Его точно так же...
select dateadd(month, datediff(month, 0, getdate()),0)
select dateadd(hour, datediff(hour, 0, getdate()),0)
Я знаю, как получить в 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 (меня не интересует точный формат)
Вы можете мне помочь? Спасибо заранее
Просто адаптируйте текущий код начала дня!
Все, что вам нужно - это начало месяца, начало часа. Его точно так же...
select dateadd(month, datediff(month, 0, getdate()),0)
select dateadd(hour, datediff(hour, 0, getdate()),0)
Попробуйте следующее:
CAST(CAST(SYSDATETIME() AS DATE) AS DATETIME)
Попробуйте это
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)
Или вы можете попробовать это
В течение дня: 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')
Самый короткий из них: CAST(CURRENT_TIMESTAMP AS DATE)