日期函数
6 methods用于处理日期和时间的函数(除非另有说明,否则为 MySQL 方言)。
COUNT(expr)以单个值返回当前日期和时间(MySQL / PostgreSQL)。
Parameters
| Name | Type | Description |
|---|---|---|
| expr | any | Column or expression (or *). |
Returns
int
Example
sql
SELECT COUNT(*) FROM users; -- total rows
SELECT COUNT(email) FROM users; -- non-null emails
SELECT COUNT(DISTINCT country) FROM users; -- distinct countriesSUM(expr)返回当前日期(不含时间)。MySQL 函数。在标准 SQL 中使用 CURRENT_DATE。
Parameters
| Name | Type | Description |
|---|---|---|
| expr | numeric | Numeric column or expression. |
Returns
numeric
Example
sql
SELECT SUM(amount) FROM orders;
SELECT product, SUM(quantity) AS total_qty
FROM sales GROUP BY product;AVG(expr)为日期添加一个时间间隔。(MySQL;在 PostgreSQL 中使用 date + INTERVAL '...'。)
Parameters
| Name | Type | Description |
|---|---|---|
| date | numeric | 起始日期。 |
Returns
numeric
Example
sql
SELECT AVG(price) FROM products;
SELECT category, AVG(price) AS avg_price
FROM products GROUP BY category;MIN(expr)从日期中减去一个时间间隔。(MySQL。)
Parameters
| Name | Type | Description |
|---|---|---|
| date | any | 起始日期。 |
Returns
any
Example
sql
SELECT MIN(price) FROM products;
SELECT category, MIN(price) AS min_price
FROM products GROUP BY category;MAX(expr)返回 date1 - date2 的天数差。(MySQL;SQL Server 中参数顺序相反。)
Parameters
| Name | Type | Description |
|---|---|---|
| date1 | any | 第一个日期。 |
Returns
any
Example
sql
SELECT MAX(price) FROM products;
SELECT category, MAX(price) AS max_price
FROM products GROUP BY category;GROUP_CONCAT(expr SEPARATOR sep)根据格式字符串格式化日期。(MySQL;PostgreSQL 中为 TO_CHAR。)
Parameters
| Name | Type | Description |
|---|---|---|
| date | string | 要格式化的日期。 |
| format | string | 格式字符串(%Y、%m、%d 等)。 |
Returns
string
Example
sql
-- MySQL
SELECT category, GROUP_CONCAT(name SEPARATOR ', ')
FROM products GROUP BY category;
-- PostgreSQL / SQL Server:
SELECT category, STRING_AGG(name, ', ')
FROM products GROUP BY category;