MySQL关于日期时间的问题

整理MySQL中用到的日期时间相关的函数

#日期增加 DAY、MONTH、YEAR
select DATE_ADD(CURDATE(),INTERVAL 2 MONTH);
#日期减去 DAY、MONTH、YEAR
select DATE_SUB(CURDATE(),INTERVAL 2 YEAR);
#查询当前日期
select CURRENT_DATE();
#查询当前时间
SELECT CURRENT_TIME();
#获取当前日期时间
select NOW();
#获取当前日
select DAY(CURRENT_DATE);
#获取当前月
select MONTH(CURRENT_DATE);
#获取当前年
select YEAR(CURRENT_DATE);

日期、时间戳、字符串相互转换

#日期转字符串
select DATE_FORMAT(NOW(),'%Y-%m-%d %T');
#日期转时间戳
select UNIX_TIMESTAMP(NOW());
#字符串转日期
select STR_TO_DATE('2019-03-6 19:50:6','%Y-%m-%d %T');
#字符串转时间戳
select UNIX_TIMESTAMP('2017-1-1');
#时间戳转字符串
select FROM_UNIXTIME(1483204562,'%Y-%m-%d %T');
#时间戳转日期
select FROM_UNIXTIME(1583204562);

MySQL日期格式化(format)

 

查询MySQL数据库时遇到了这样的问题:

java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date

该错误是由于数据库中的日期类型字段的值为空,查询出结果后进行对日期字段进行转换导致的。网上查询了一下解决方案有两种:

方式一:driver-url=jdbc:mysql://127.0.0.1/test?zeroDateTimeBehavior=convertToNull(已验证

读取的为空的日期字段会显示为null

方式二:driver-url=jdbc:mysql://127.0.0.1/test?noDatetimeStringSync=true (未验证)

读取为空的日期字段会显示为0000-00-00 00:00:00

Mysql时区设置

查询mysql数据库时区设置命令:show variables like "%time_zone%";

system_time_zone 系统默认时区,该参数为mysql服务启动时服务器所设置的时区

time_zone 为连接会话时使用的时区,参数为system时表示使用系统默认时区,也可变更为自定义时区,set time_zone = '+7:00' 来修改当前会话的时区

set global time_zone = '+7:00' 来修改全局会话的时区;注意:修改了全局会话时区时,只针对新开启的会话有效,对于已经打开的会话不会影响。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值