MS SQL Server中對日期的一些常用處理——持續更新

注:以下表達式中的0其實是表示日期1900-1-1

1.當天的零點

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

  以上DATEDIFF(DAY,0,GETDATE())表示先計算當天與1900-1-1之間相關的天數,假設這裏記為N天,然後再通過DATEADD計算1900-1-1加上N天就得出當天的日期,時間為零點。

2.當月的第一天

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

  原理同上,只是計算單位由DAY變成MONTH。

3.當月的最後一天

SELECT DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE())+1,0)-1

  原理是先計算出下個月的第一天,然後再減去一天。

4.今天是星期幾

 

SELECT DATENAME(WEEKDAY,GETDATE())
--輸出:星期五

 

5.今天是一周中的第幾天

SELECT DATEPART(DW,GETDATE())
--默認一周的開始是星期天,所以1表示星期天,7表示星期六

  但是可以通過以下語句來改變這個默認值,如以下修改一周的第一天為星期一:

SET DATEFIRST 1

  還可以通過以下語句查看當前的DATEFIRST的值:

SELECT @@DATEFIRST

 

 

 

 

 

 

转载于:https://www.cnblogs.com/diuleiloumou/p/4302533.html

你可能感兴趣的:(MS SQL Server中對日期的一些常用處理——持續更新)