MYSQL时间处理

返回当前时间

传送门:http://www.runoob.com/sql/sql-dates.html

1.1 获得当前日期+时间(date + time)函数:now()

除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:
current_timestamp() current_timestamp
localtime() localtime
localtimestamp() localtimestamp

mysql> select current_date();
+----------------+
| current_date() |
+----------------+
| 2018-12-14     |
+----------------+
1 row in set (0.05 sec)

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2018-12-14 10:22:27 |
+---------------------+
1 row in set (0.05 sec)

mysql> select current_timestamp();
+---------------------+
| current_timestamp() |
+---------------------+
| 2018-12-14 10:24:27 |
+---------------------+
1 row in set (0.05 sec)

mysql> select current_timestamp;
+---------------------+
| current_timestamp   |
+---------------------+
| 2018-12-14 10:24:41 |
+---------------------+
1 row in set (0.05 sec)

这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数。

1.2 获得当前日期+时间(date + time)函数:sysdate()
mysql> select sysdate();
+---------------------+
| sysdate()           |
+---------------------+
| 2018-12-14 10:25:20 |
+---------------------+
1 row in set (0.05 sec)

sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate()
在函数执行时动态得到值。

2. 获得当前日期(date)函数:curdate()

其中,下面的两个日期函数等同于 curdate(): current_date(),current_date

mysql> select curDate();
+------------+
| curDate()  |
+------------+
| 2018-12-14 |
+------------+
1 row in set (0.05 sec)

mysql> select current_date
    -> ;
+--------------+
| current_date |
+--------------+
| 2018-12-14   |
+--------------+
1 row in set (0.05 sec)

mysql> select current_date();
+----------------+
| current_date() |
+----------------+
| 2018-12-14     |
+----------------+
1 row in set (0.05 sec)

3. 获得当前时间(time)函数:curtime()

其中,下面的两个时间函数等同于 curtime():current_time(),current_time

mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 10:34:35  |
+-----------+
1 row in set (0.05 sec)

mysql> select current_time();
+----------------+
| current_time() |
+----------------+
| 10:34:43       |
+----------------+
1 row in set (0.05 sec)

4. 获得当前 UTC 日期时间函数:

utc_date(), utc_time(), utc_timestamp()

mysql> select utc_date();
+------------+
| utc_date() |
+------------+
| 2018-12-14 |
+------------+
1 row in set (0.05 sec)

mysql> select utc_time();
+------------+
| utc_time() |
+------------+
| 02:35:51   |
+------------+
1 row in set (0.05 sec)

mysql> select utc_timestamp();
+---------------------+
| utc_timestamp()     |
+---------------------+
| 2018-12-14 02:36:03 |
+---------------------+
1 row in set (0.05 sec)

原文地址:https://www.cnblogs.com/Chenshuai7/p/5136469.html

操作时间

时间偏移

原文地址:https://www.cnblogs.com/technologylife/p/6118352.html

  1. date_add(‘要操作的时间’, interval 时间偏移量 偏移时间类型)

分别往后/前偏移一个月的时间

mysql> select date_add(now(), interval 1 month);
+-----------------------------------+
| date_add(now(), interval 1 month) |
+-----------------------------------+
| 2019-01-14 10:45:52               |
+-----------------------------------+
1 row in set (0.05 sec)

mysql> select date_add(now(), interval -1 month);
+------------------------------------+
| date_add(now(), interval -1 month) |
+------------------------------------+
| 2018-11-14 10:46:15                |
+------------------------------------+
1 row in set (0.05 sec)

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2018-12-14 10:46:26 |
+---------------------+
1 row in set (0.05 sec)
  • 时间类型
时间类型描述
microsecond微秒
Second
Minute
Hour
Day
Month
year
week
quarter
Minute_second分:秒,以 : 隔开
Hour_minute时:分:秒 以 : 隔开
Year-month年-月 ,以 - 隔开
mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2018-12-14 10:59:36 |
+---------------------+
1 row in set (0.05 sec)

mysql> select date_add(now(), interval '10:10' hour_minute);
+-----------------------------------------------+
| date_add(now(), interval '10:10' hour_minute) |
+-----------------------------------------------+
| 2018-12-14 21:10:30                           |
+-----------------------------------------------+
1 row in set (0.06 sec)

mysql> select date_add(now(), interval '10-10' hour_minute);
+-----------------------------------------------+
| date_add(now(), interval '10-10' hour_minute) |
+-----------------------------------------------+
| 2018-12-14 21:10:44                           |
+-----------------------------------------------+
1 row in set (0.05 sec)

mysql> select date_add(now(), interval '10 10' hour_minute);
+-----------------------------------------------+
| date_add(now(), interval '10 10' hour_minute) |
+-----------------------------------------------+
| 2018-12-14 21:10:53                           |
+-----------------------------------------------+
1 row in set (0.05 sec)

date_sub()

MySQL 为日期减去一个时间间隔:date_sub();
MySQL date_sub() 日期时间函数 和date_add() 用法一致,不再赘述。

时间之间的间隔符号,我发现对间隔似乎没有太大要求~ 我使用的是MySQL版本是:mysql-8.0.13-winx64,不知道会不会关乎到版本!!!

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2018-12-14 11:07:38 |
+---------------------+
1 row in set (0.05 sec)

mysql> select date_add(now(), interval '10' hour_minute);
+--------------------------------------------+
| date_add(now(), interval '10' hour_minute) |
+--------------------------------------------+
| 2018-12-14 11:17:45                        |
+--------------------------------------------+
1 row in set (0.05 sec)

last_date()

返回当前月最后一天
无论提供的参数是date型还是datetime型,last_day()函数都将返回一个date值

mysql> select last_day(now());
+-----------------+
| last_day(now()) |
+-----------------+
| 2018-12-31      |
+-----------------+
1 row in set (0.05 sec)

year()、month()、day()、time()…提取部分时间

mysql> select year(now()),month(now()),day(now()),hour(now()),minute(now()),second(now());
+-------------+--------------+------------+-------------+---------------+---------------+
| year(now()) | month(now()) | day(now()) | hour(now()) | minute(now()) | second(now()) |
+-------------+--------------+------------+-------------+---------------+---------------+
|        2018 |           12 |         14 |          11 |            21 |             4 |
+-------------+--------------+------------+-------------+---------------+---------------+
1 row in set (0.05 sec)

dayname(date)

返回指定日期是星期几

mysql> select dayname(now());
+----------------+
| dayname(now()) |
+----------------+
| Friday         |
+----------------+
1 row in set (0.05 sec)

datediff()

返回两日期相隔天数

mysql> select datediff(now(), '2018-10-10');
+-------------------------------+
| datediff(now(), '2018-10-10') |
+-------------------------------+
|                            65 |
+-------------------------------+
1 row in set (0.05 sec)

mysql> select datediff(now(), '2028-10-10');
+-------------------------------+
| datediff(now(), '2028-10-10') |
+-------------------------------+
|                         -3588 |
+-------------------------------+
1 row in set (0.05 sec)

TIMESTAMPDIFF

TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。
说明:
返回日期或日期时间表达式datetime_expr1 和datetime_expr2 之间的整数差。其结果的单位由interval 参数给出。该参数必须是以下值的其中一个:

FRAC_SECOND。表示间隔是毫秒
SECOND。秒
MINUTE。分钟
HOUR。小时
DAY。天
WEEK。星期
MONTH。月
QUARTER。季度
YEAR。年

TIMESTAMPADD

TIMESTAMPADD(interval,int_expr,datetime_expr)
将整型表达式int_expr 添加到日期或日期时间表达式 datetime_expr中。式中的interval和上文中列举的取值是一样的

//在当前日期增加一年
mysql> select timestampadd(year, 1 , now());
+-------------------------------+
| timestampadd(year, 1 , now()) |
+-------------------------------+
| 2019-12-14 11:41:26           |
+-------------------------------+
1 row in set (0.05 sec)

NUIX_TIMESTAMP

nuix_timestamp函数将字符串时间转换为时间戳

mysql> select unix_timestamp(now());
+-----------------------+
| unix_timestamp(now()) |
+-----------------------+
|            1544759125 |
+-----------------------+
1 row in set (0.05 sec)

from_unixtime

from_unixtime函数 用于将Unix 时间戳格式化为日常的时间格式

date为需要处理的参数(该参数是Unix 时间戳),可以是字段名,也可以直接是Unix 时间戳字符串
后面的 ‘%Y%m%d’ 主要是将返回值格式化

mysql> select from_unixtime(1544759125, '%Y-%m-%d');
+---------------------------------------+
| from_unixtime(1544759125, '%Y-%m-%d') |
+---------------------------------------+
| 2018-12-14                            |
+---------------------------------------+
1 row in set (0.05 sec)

原文:https://blog.csdn.net/u012373815/article/details/70008023

data_format

DATE_FORMAT(date,format) 格式化日期格式
date 参数是合法的日期。format 规定日期/时间的输出格式。

格式描述
%a缩写星期名
%b缩写月名
%c月,数值
%D带有英文前缀的月中的天
%d月的天,数值(00-31)
%e月的天,数值(0-31)
%f微秒
%H小时(00-23)
%h小时(01-12)
%I小时(01-12)
%i分钟,数值(00-59)
%j年的天(001-366)
%k小时(0-23)
%l小时(1-12)
%M月名
%m月,数值(00-12)
%pAM 或 PM
%r时间,12-小时(hh:mm:ss AM 或 PM)
%S秒(00-59)
%s秒(00-59)
%T时间, 24-小时(hh:mm:ss)
%U周(00-53)星期日是一周的第一天
%u周(00-53)星期一是一周的第一天
%V周(01-53)星期日是一周的第一天,与 %X 使用
%v周(01-53)星期一是一周的第一天,与 %x 使用
%W星期名
%w周的天(0=星期日, 6=星期六)
%X年,其中的星期日是周的第一天,4 位,与 %V 使用
%x年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y年,4 位
%y年,2 位

吃饭了吃饭了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值