此頁面列出了最常用的SQL Server日期函數,它們能夠有效地處理日期和時間日期。
**返回日期和時間函數**
| 編號 | 函數 | 描述說明 |
| --- | --- | --- |
| 1 | DATENAME | 以字符串形式返回日期部分 |
| 2 | DATEPART | 以整數形式返回日期部分 |
| 3 | DAY| 以整數形式返回指定日期 |
| 4 | MONTH | 以整數形式返回指定日期的月份 |
| 5 | YEAR | 以整數形式返回日期的年份。 |
**返回兩個日期之間的差值**
| 編號 | 函數 | 描述說明 |
| --- | --- | --- |
| 1 | DATEDIFF | 返回兩個日期之間的日期部分的差值。 |
| 2 | DATEDIFF\_BIG | 返回兩個日期之間的日期部分的差值。 |
**修改時間函數**
| 編號 | 函數 | 描述說明 |
| --- | --- | --- |
| 1 | DATEADD | 將值添加到日期部分并返回新的日期值。 |
| 2 | EOMONTH | 返回包含指定日期的月份的最后一天,并帶有可選的偏移量。 |
| 3 | SWITCHOFFSET | 更改`DATETIMEOFFSET`值的時區偏移量并保留UTC值。 |
| 4 | TODATETIMEOFFSET | 將`datetime2`值轉換為`datetimeoffset`值。 |
#### SQL Server DATENAME()函數概述
`DATENAME()`函數返回一個字符串`NVARCHAR`類型,表示指定日期部分,例如指定日期的年,月和日。
以下是`DATENAME()`函數的語法:
~~~sql
DATENAME(date_part,input_date)
~~~
`DATENAME()`函數接受兩個參數:
* `date_part`是要返回的日期的一部分。下表列出了所有有效的日期部分值。
* `input_date`是一個文字日期或表達式,可以解析為:TIME,DATE,`SMALLDATETIME`,`DATETIME`,DATETIME2或`DATETIMEOFFSET`值。
| date\_part | 縮寫形式 |
| --- | --- |
| year | yy, yyyy |
| quarter | qq, q |
| month | mm, m |
| dayofyear | dy, y |
| day | dd, d |
| week | wk, ww |
| weekday | dw |
| hour | hh |
| minute | mi, n |
| second | ss, s |
| millisecond | ms |
| microsecond | mcs |
| nanosecond | ns |
| TZoffset | tz |
| ISO\_WEEK | isowk, isoww |
#### DATENAME()與DATEPART()區別
請注意,除返回類型外,`DATENAME()`類似于DATEPART()。 `DATENAME()`函數將日期部分作為字符串返回,而`DATEPART()`將日期部分作為整數返回。
請參閱以下示例:
~~~sql
SELECT
DATEPART(year, '2020-11-10') [datepart],
DATENAME(year, '2020-11-10') [datename];
~~~
執行上面查詢語句,得到以下結果:
~~~shell
datepart datename
----------- ------------------------------
2020 2020
(1 行受影響)
~~~
但是,它們的數據類型不同,如以下示例所示:
~~~sql
SELECT
DATEPART(year, '2021-07-10') + '1' [datepart],
DATENAME(year, '2021-07-10') + '1' [datename] ;
~~~
執行上面查詢語句,得到以下結果:
~~~shell
datepart datename
----------- -------------------------------
2022 20211
(1 行受影響)
~~~
因為`DATEPART()`函數返回一個整數,所以表達式的計算結果為`2022`(即:`2021 + 1`)。 但是,`DATENAME()`函數返回一個字符串,因此,`+`是連接運算符,它得到結果為:`'20211'`(即:`'2021' + '1')`。
#### SQL Server DATENAME()函數示例
此示例使用`DATENAME()`函數返回`'2022-11-12 11:22:33.1234567 +08:10'`的各種日期部分:
~~~sql
DECLARE @dt DATETIME2= '2022-11-12 11:22:33.1234567 +08:10';
SELECT 'year,yyy,yy' date_part,
DATENAME(year, @dt) result
UNION
SELECT 'quarter, qq, q',
DATENAME(quarter, @dt)
UNION
SELECT 'month, mm, m',
DATENAME(month, @dt)
UNION
SELECT 'dayofyear, dy, y',
DATENAME(dayofyear, @dt)
UNION
SELECT 'day, dd, d',
DATENAME(day, @dt)
UNION
SELECT 'week, wk, ww',
DATENAME(week, @dt)
UNION
SELECT 'weekday, dw, w',
DATENAME(week, @dt)
UNION
SELECT 'hour, hh' date_part,
DATENAME(hour, @dt)
UNION
SELECT 'minute, mi,n',
DATENAME(minute, @dt)
UNION
SELECT 'second, ss, s',
DATENAME(second, @dt)
UNION
SELECT 'millisecond, ms',
DATENAME(millisecond, @dt)
UNION
SELECT 'microsecond, mcs',
DATENAME(microsecond, @dt)
UNION
SELECT 'nanosecond, ns',
DATENAME(nanosecond, @dt)
UNION
SELECT 'TZoffset, tz',
DATENAME(tz, @dt)
UNION
SELECT 'ISO_WEEK, ISOWK, ISOWW',
DATENAME(ISO_WEEK, @dt);
~~~
執行上面查詢語句,得到以下結果:
~~~shell
date_part result
---------------------- ------------------------------
day, dd, d 12
dayofyear, dy, y 316
hour, hh 11
ISO_WEEK, ISOWK, ISOWW 45
microsecond, mcs 123456
millisecond, ms 123
minute, mi,n 22
month, mm, m 11
nanosecond, ns 123456700
quarter, qq, q 4
second, ss, s 33
TZoffset, tz +00:00
week, wk, ww 46
weekday, dw, w 46
year,yyy,yy 2022
(15 行受影響)
~~~
- 第一章-測試理論
- 1.1軟件測試的概念
- 1.2測試的分類
- 1.3軟件測試的流程
- 1.4黑盒測試的方法
- 1.5AxureRP的使用
- 1.6xmind,截圖工具的使用
- 1.7測試計劃
- 1.8測試用例
- 1.9測試報告
- 2.0 正交表附錄
- 第二章-缺陷管理工具
- 2.1缺陷的內容
- 2.2書寫規范
- 2.3缺陷的優先級
- 2.4缺陷的生命周期
- 2.5缺陷管理工具簡介
- 2.6缺陷管理工具部署及使用
- 2.7軟件測試基礎面試
- 第三章-數據庫
- 3.1 SQL Server簡介及安裝
- 3.2 SQL Server示例數據庫
- 3.3 SQL Server 加載示例
- 3.3 SQL Server 中的數據類型
- 3.4 SQL Server 數據定義語言DDL
- 3.5 SQL Server 修改數據
- 3.6 SQL Server 查詢數據
- 3.7 SQL Server 連表
- 3.8 SQL Server 數據分組
- 3.9 SQL Server 子查詢
- 3.10.1 SQL Server 集合操作符
- 3.10.2 SQL Server聚合函數
- 3.10.3 SQL Server 日期函數
- 3.10.4 SQL Server 字符串函數
- 第四章-linux
- 第五章-接口測試
- 5.1 postman 接口測試簡介
- 5.2 postman 安裝
- 5.3 postman 創建請求及發送請求
- 5.4 postman 菜單及設置
- 5.5 postman New菜單功能介紹
- 5.6 postman 常用的斷言
- 5.7 請求前腳本
- 5.8 fiddler網絡基礎及fiddler簡介
- 5.9 fiddler原理及使用
- 5.10 fiddler 實例
- 5.11 Ant 介紹
- 5.12 Ant 環境搭建
- 5.13 Jmeter 簡介
- 5.14 Jmeter 環境搭建
- 5.15 jmeter 初識
- 5.16 jmeter SOAP/XML-RPC Request
- 5.17 jmeter HTTP請求
- 5.18 jmeter JDBC Request
- 5.19 jmeter元件的作用域與執行順序
- 5.20 jmeter 定時器
- 5.21 jmeter 斷言
- 5.22 jmeter 邏輯控制器
- 5.23 jmeter 常用函數
- 5.24 soapUI概述
- 5.25 SoapUI 斷言
- 5.26 soapUI數據源及參數化
- 5.27 SoapUI模擬REST MockService
- 5.28 Jenkins的部署與配置
- 5.29 Jmeter+Ant+Jenkins 搭建
- 5.30 jmeter腳本錄制
- 5.31 badboy常見的問題
- 第六章-性能測試
- 6.1 性能測試理論
- 6.2 性能測試及LoadRunner簡介
- 第七章-UI自動化
- 第八章-Maven
- 第九章-測試框架
- 第十章-移動測試
- 10.1 移動測試點及測試流程
- 10.2 移動測試分類及特點
- 10.3 ADB命令及Monkey使用
- 10.4 MonkeyRunner使用
- 10.5 appium工作原理及使用
- 10.6 Appium環境搭建(Java版)
- 10.7 Appium常用函數(Java版)
- 10.8 Appium常用函數(Python版)
- 10.9 兼容性測試