您的位置:首页 > 数据库

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

2015-02-27 08:47 337 查看
注:以下表達式中的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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: