Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) Може ли някой да ми обясни това

това ще ви даде първо число от месеца за дадена дата

вътрешен изборselect DATEDIFF(MONTH, 0, GETDATE()) ще даде броя на месеците от 1900-01-01

тук е 1350

това ще бъде добавено към 1900-01-01 , но само месеците

select DATEADD(MONTH,1350,0) ще даде 2012-07-01 00:00:00.000

което е началото на текущия месец.

Мисля, че това е най-ефективният начин да намерите началото на месец за дадена дата.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Има ли ограничение за броя на таблиците в базата данни на SQL Server И изгледа?

  2. Трябва да изтриете дублиращи се записи от таблицата с помощта на row_number()

  3. Синтаксис за стойността по подразбиране за дефиниран от потребителя тип като таблица

  4. За Nvarchar(Max) получавам само 4000 знака в TSQL?

  5. sql:стойности на редове като колони