Temporal Data
Time zone
- 查看Mysql时区
SELECT @@global.time_zone, @@session.time_zone; - 设置MySQL时区
SET time_zone='$Location or $num_of_time_zone;
Generation
创建方式
- 从别处copy
- 使用
date(),datetime(),time()等函数 - 使用数组表示,SQL Server自动将其转化为时间变量
用字符串表示时间变量
| Component | Definition | Range |
|---|---|---|
| YYYY | Year, including century | 1000 to 9999 |
| MM | Month | 01(January) to 12(December) |
| DD | Day | 01 to 31 |
| HH | Hour | 00 to 23 |
| HHH | Hours(elapsed) | 00 to 23 |
| MI | Minute | 00 to 59 |
| SS | Second | 00 to 59 |
| Type | Default format |
|---|---|
date |
YYYY-MM-DD |
datetime |
YYYY-MM-DD HH:MI:SS |
timestamp |
YYYY-MM-DD HH:MI:SS |
time |
HHH:MI:SS |
string_to_date conversion
cast('$time_string' AS $temporal_type)
str_to_date('$date_str','$pattern_str');- example:
STR_TO_DATE('September 17, 2019', '%M %d, %Y');
- example:
| Format | Description |
|---|---|
| %M | 字母月份,全拼(January to December) |
| %m | 数字月份,(01 to 12) |
| %d | 一个月内的第*日,(01 to 31) |
| %j | 一年中的第*天,(001 to 366) |
| %W | 字母周几,(Sunday to Saturday) |
| %Y | 年份,四位数字 |
| %y | 年份,两位数字 |
| %H | 小时,24小时制(00 to 23) |
| %h | 小时,12小时制(01 to 12) |
| %i | 分钟,(00 to 59) |
| %s | 秒,(00 to 59) |
| %f | 微秒,(000000 to 999999) |
| %p | A.M. OR P.M. |
now()CURRENT_TIMESTAMP()CURRENT_TIME()CURRENT_DATE()
Manipulation
DATE_ADD($date_type, INTERVAL $value $interval_type)
| Interval name | Description |
|---|---|
| second | 秒数 |
| minute | 分钟数 |
| hour | 小时数 |
| day | 天数 |
| month | 月数 |
| year | 年数 |
| minute_second | 分秒数,分秒,之间要用 : 分隔 |
| hour_second | 小时,分钟和秒,之间要用 : 分隔 |
| year_month | 年和月数,之间要用 - 分隔 |
DAYNAME($temporal_type)返回周几EXTRACT($interval_type FROM $temporal_type)- 例如
SELECT EXTRACT(second FROM NOW());返回目前的秒数。
- 例如
datediff($temporal1, $temporal2)计算$temporal1和$temporal2之间相差的天数(完整的天数)($temporal1-temporal2)