Подтвердить что ты не робот

Как получить дату, представляющую первый день месяца?

Мне нужна функциональность в script, которая позволит мне вставлять даты в таблицу.

Какой SQL мне нужно, чтобы вставить дату формата

01/08/2010 00:00:00

где дата - первый день текущего месяца. Что мне нужно, чтобы изменить порядок, чтобы указать значение месяца? Благодаря

4b9b3361

Ответ 1

Самый лучший и простой способ сделать это:

SELECT DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)

Просто замените GETDATE() на любую дату, в которой вы нуждаетесь.

Ответ 2

select cast(cast(datepart(year,getdate()) as char(4)) 
+ '/' 
+ cast(datepart(month,getdate()) as char(2))
+ '/01' as datetime)

Ответ 3

Принятый ответ работает и может быть быстрее, но SQL 2012 и выше имеют более понятный метод:

SELECT cast(format(GETDATE(), 'yyyy-MM-01') as Date)

Ответ 4

Вот очень простой способ сделать это (используя SQL 2012 или новее)

datefromparts(year(getdate()),month(getdate()),1)

вы также можете легко получить последний день месяца, используя

eomonth(getdate())

Ответ 5

SELECT DATEADD (день, 1-DATEpart (день, GETDATE()), GETDATE())

Ответ 6

Я думаю, что обычно преобразует строку в MM/DD/YY HH: mm: ss, вам нужно будет использовать 08/01/2010 00:00:00

Извините, непонятый вопрос, посмотрев, можете ли вы изменить порядок строк.

Это может быть то, что вы хотите:

declare @test as date

select @test = CONVERT(date, '01/08/2010 00:00:00', 103)
select convert(varchar(15), @test, 106)

Ответ 7

Изменено из этой ссылка. Это будет возвращено как строка, но вы можете изменить по мере необходимости, чтобы вернуть тип данных datetime.

SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(GetDate())-1),GetDate()),101) 

Ответ 8

SELECT  CAST(FLOOR(CAST(DATEADD(d, 1 - DAY(GETDATE()), GETDATE()) AS FLOAT)) AS DATETIME)

Ответ 9

SELECT DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0)

Это сработало отлично. Я фактически добавил выражение Case. Спасибо за сообщение:

SELECT Case(DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0) as Date)

Ответ 10

выберите last_day (add_months (sysdate, -1)) + 1 из dual;

Ответ 11

В SQL Server 2012 вы можете использовать eomonth встроенную функцию, которая предназначена для получения конца месяца но также можно использовать для начала:

select dateadd(day, 1, eomonth(<date>, -1))

Если вам нужен результат как datetime и т.д., просто cast it:

select cast(dateadd(day, 1, eomonth(<date>, -1)) as datetime)

Ответ 12

Получить первый день последнего месяца

Select ADDDATE(LAST_DAY(ADDDATE(now(), INTERVAL -2 MONTH)), INTERVAL 1 DAY);

Получить последний день последнего месяца

Select LAST_DAY(ADDDATE(now(), INTERVAL -1 MONTH));

Ответ 13

... в Powershell вы можете сделать что-то вроде этого:

Get-Date (get-Date ((Get-Date)) -формат MM.yyyy)

... за последний месяц выполните следующее:

Get-Date (get-Date ((Get-Date).AddMonths(-1)) -формат MM.yyyy)

... или для пользовательской даты сделайте следующее:

Get-Date (get-Date ((Get-Date 12.01.2013)) -формат MM.yyyy)

I m sure there что-то вроде этого возможно...

Gruß

Ответ 14

Очень простой кусок кода для этого

$date - extract (день от $date) + 1

два способа сделать это:

  • my_date - extract (day from my_date) + 1

  • '2014/01/21' - выписка (день с '2014/01/21') + 1