SQL DATETRUNC函数
SQL DATETRUNC() 函数用于将日期或时间值截断为指定的日期部分。
该函数有两个参数 – 第一个参数是应截断的日期或时间值的日期部分,第二个参数是要截断的日期或时间值。
语法
SQL DATETRUNC() 函数的语法如下 –
DATETRUNC(datepart, date)
参数
此函数接受两个参数。下面是对这两个参数的描述:
- datepart - datepart 可以是以下值之一:
- year - 将日期/时间值截断到指定年份的开始位置。
-
quarter - 将日期/时间值截断到指定季度的开始位置。
-
month - 将日期/时间值截断到指定月份的开始位置。
-
dayofyear - 将日期/时间值截断到指定日期的开始位置。
-
day - 将日期/时间值截断到指定日期的开始位置。
-
week - 将日期/时间值截断到指定周的开始位置。
-
hour - 将日期/时间值截断到指定小时的开始位置。
-
minute - 将日期/时间值截断到指定分钟的开始位置。
-
second - 将日期/时间值截断到指定秒的开始位置。
-
millisecond - 将日期/时间值截断到指定毫秒的开始位置。
-
microsecond - 将日期/时间值截断到指定微秒的开始位置。
-
date - 这可以是任何类型,例如 smalldatetime、datetime、date、time、datetime2、datetimeoffset。
示例
在这个示例中,我们将尝试将 datetime 值截断到 year 的开始位置,使用以下查询:
SQL> SELECT DATETRUNC(YEAR, '2023-02-20 06:32:15') AS RESULT;
输出
如果我们执行上述查询,结果如下所示−
+-----------------------------+
| RESULT |
+-----------------------------+
| 2023-01-01 00:00:00.0000000 |
+-----------------------------+
示例
在下面的示例中,我们尝试将日期时间值截断为 周的开头 (从星期日开始)−
SQL> SELECT DATETRUNC(WEEK, '2023-02-20 06:32:15') AS RESULT;
输出
当我们执行上述查询时,输出结果如下:
+-----------------------------+
| RESULT |
+-----------------------------+
| 2023-02-15 00:00:00.0000000 |
+-----------------------------+
示例
在下面的示例中,我们试图将日期时间值截断到 季度 的开始处−
SQL> SELECT DATETRUNC(QUARTER, '2023-05-20 06:32:15') AS RESULT;
输出
上述查询的输出如下:
+-----------------------------+
| RESULT |
+-----------------------------+
| 2023-04-01 00:00:00.0000000 |
+-----------------------------+
示例
在这里,我们正在尝试将日期时间值截断到小时的开始,使用以下查询 –
SQL> SELECT DATETRUNC(HOUR, '2023-02-20 06:32:15') AS RESULT;
输出
执行上述查询后,输出结果如下所示 −
+-----------------------------+
| RESULT |
+-----------------------------+
| 2023-02-20 06:00:00.0000000 |
+-----------------------------+
示例
我们可以使用以下查询将日期时间值截断到 秒 的开头 −
注意 − SYSDATETIME() 函数检索当前日期和时间。
SQL> SELECT DATETRUNC(SECOND, SYSDATETIME()) AS RESULT;
输出
当我们执行上述查询时,输出结果如下所示 –
+-----------------------------+
| RESULT |
+-----------------------------+
| 2023-02-20 16:39:46.0000000 |
+-----------------------------+