适合新手的mysql日期类型转换实例教程

目录
  • 1、使用cast() 和 convert() 函数实现日期格式的转换
  • 2、使用date_format()函数实现日期格式的转换
    • 示例1:时间类型转换成字符串类型
    • 示例2:从学生表 ‘student’ 中查询前2人现在的年龄。
  • 3、使用str_to_date()函数实现字符串类型转换日期类型
  • 总结

1、使用cast() 和 convert() 函数实现日期格式的转换

语法格式:

convert( 表达式,数据类型 )

cast( 表达式 as 数据类型 )

可转换的类型有 字符串char、日期date、时间time、日期时间datetime、浮点型decimal、整数signed、无符号整数unsigned。

mysql> select cast(now() as signed);
+-----------------------+
| cast(now() as signed) |
+-----------------------+
|        20201030042922 |
+-----------------------+
1 row in set (0.00 sec)

mysql> select convert(now(),signed);
+-----------------------+
| convert(now(),signed) |
+-----------------------+
|        20201030042933 |
+-----------------------+
1 row in set (0.00 sec)

mysql> select cast(now() as char);
+---------------------+
| cast(now() as char) |
+---------------------+
| 2020-10-30 04:29:44 |
+---------------------+

2、使用date_format()函数实现日期格式的转换

date_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)
%p AM 或 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 位

示例1:时间类型转换成字符串类型

mysql> select date_format(now(),'%Y-%m-%d');
+-------------------------------+
| date_format(now(),'%Y-%m-%d') |
+-------------------------------+
| 2020-10-30                    |
+-------------------------------+

示例2:从学生表 ‘student’ 中查询前2人现在的年龄。

mysql> select * from student limit 2;
+------------+-----------+-----+------------+-----------------------+---------+
| Sid        | Sname     | Sex | Brithdate  | Specialty             | AScores |
+------------+-----------+-----+------------+-----------------------+---------+
| 2011216001 | 赵成刚    | 男  | 1992-05-05 | 计算机应用技术        |   405.0 |
| 2011216002 | 李婧      | 女  | 1992-01-06 | 计算机应用技术        |   395.5 |
+------------+-----------+-----+------------+-----------------------+---------+

mysql> select sname,
    -> convert(date_format(now(),'%Y'),signed)-convert(date_format(Brithdate,'%Y'),signed) as '年龄'
    -> from student
    -> limit 2;
+-----------+--------+
| sname     | 年龄   |
+-----------+--------+
| 赵成刚    |     28 |
| 李婧      |     28 |
+-----------+--------+

3、使用str_to_date()函数实现字符串类型转换日期类型

str_to_date()函数可以将时间格式的字符串按照所指定的显示格式(format)转换为不同的时间类型。

语法格式:

str_to_date(date,format)

mysql> select str_to_date('2020-10-3','%Y-%m-%d');
+-------------------------------------+
| str_to_date('2020-10-3','%Y-%m-%d') |
+-------------------------------------+
| 2020-10-03                          |
+-------------------------------------+

mysql> select str_to_date('2020-10-3','%Y');
+-------------------------------+
| str_to_date('2020-10-3','%Y') |
+-------------------------------+
| 2020-00-00                    |
+-------------------------------+

mysql> select str_to_date('10:11','%H:%i:%S');
+---------------------------------+
| str_to_date('10:11','%H:%i:%S') |
+---------------------------------+
| 10:11:00                        |
+---------------------------------+

把字符串转换为日期时间需要注意以下几点:

待转换字符串中只能出现数字,否则返回结果为 null;

如果格式字符串仅包含日期,则待转字符串至少需要 8 位数字,转换时默认前四位是年份,中间两位是月份,最后两位是日期,格式字符串无需使用 - 区分日期各部分,结果会自动用 - 拼接日期各个部分;

转换后日期时间必须有效,否则返回结果为 null;

如果被转字符串超出 8 位且格式字符串中无时间格式,则自动取前 8 位转换为日期;

格式字符串可包含时间格式,格式字符串无需使用 : 区分时间各部分,结果中的时间部分会自动用 : 连接各个部分。

str_to_date() 函数的用法和 date_format() 基本一致,只是输出数据的类型不同,前提都需要熟悉输出格式,参照date_format() 。

总结

到此这篇关于mysql日期类型转换的文章就介绍到这了,更多相关mysql日期类型转换内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySQL日期函数与日期转换格式化函数大全

    Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数 1.DAYOFWEEK(date) SELECT DAYOFWEEK('2016-01-16') SELECT DAYOFWEEK('2016-01-16 00:00:00') -> 7 (表示,记住:星期天=1,星期一=2, ... 星期六=7) 2.WEEKDAY(date) SELECT WEEKDAY('2016-01-16') SELECT WEEKDAY('2016-01

  • MySQL中日期和时间戳互相转换的函数和方法

    ① 时间戳转换成日期 复制代码 代码如下: FROM_UNIXTIME 例如: 数据表中 invest_time 存储的是时间戳,如 1429063399 使用 FROM_UNIXTIME 可以把时间戳转换为日期: 复制代码 代码如下: select FROM_UNIXTIME(invest_time,'%Y年%m月%d') from crm_invest_apply 执行结果: ② 把日期转换为时间戳,和 FROM_UNIXTIME 正好相反 复制代码 代码如下: UNIX_TIMESTAMP

  • mysql 日期和时间格式转换实现语句

    这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30; DAYOFWEEK(date) 返回日期date的星期索引(1=星期天,2=星期一, --7=星期六).这些索引值对应于ODBC标准. mysql> select DAYOFWEEK('1998-02-03'); ->

  • 适合新手的mysql日期类型转换实例教程

    目录 1.使用cast() 和 convert() 函数实现日期格式的转换 2.使用date_format()函数实现日期格式的转换 示例1:时间类型转换成字符串类型 示例2:从学生表 ‘student’ 中查询前2人现在的年龄. 3.使用str_to_date()函数实现字符串类型转换日期类型 总结 1.使用cast() 和 convert() 函数实现日期格式的转换 语法格式: convert( 表达式,数据类型 ) cast( 表达式 as 数据类型 ) 可转换的类型有 字符串char.日

  • php中日期类型转换实例讲解

    1.使用date()函数将UNIX时间戳转换为日期. 2.使用strtotime()函数将日期转换为UNIX时间戳. 在PHP中是可以完成日期格式转换的,不过有一个缺点就是占用PHP解析器的解析时间,因此速度会相对慢一些.但是这种方式也有优点,那就是不管是不是数据库中查询获得的数据都可以进行转换,转换范围不受限制. 实例 $y=date("Y",time()); //年 $m=date("m",time()); //月 $d=date("d",t

  • mysql的定时任务实例教程

    前言 自 MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录.对数据进行汇总等等),来取代原先只能由操作系统的计划任务来执行的工作.更值得 一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精 确到每分钟执行一次.对于一些对数据实时性要求比较高的应用(例如:股票.赔率.比分等)就非常适合. 本文将给大家详细介绍关于

  • SpringBoot自定义注解使用读写分离Mysql数据库的实例教程

    需求场景 为了防止代码中有的SQL慢查询,影响我们线上主数据库的性能.我们需要将sql查询操作切换到从库中进行.为了使用方便,将自定义注解的形式使用. mysql导入的依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.16</version> </dependency&

  • Mysql 5.6.24安装实例教程

    安装前准备工作: 1)编辑PATH路径 vim /etc/profile PATH=/home/mysql/bin:/home/mysql/lib:$PATH export PATH 2)生效PATH source /etc/profile 3)编辑hosts vim /etc/hosts 192.168.117.130 cc-test 安装 1.环境配置 yum install - y gcc gcc-c++ make cmake 2.准备好安装包mysql-5.6.24.tar.gz,并将它

  • mysql日期处理函数实例解析

    这篇文章主要介绍了mysql日期处理函数实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 首先创建一张实验用的一张表 drop table if exists t_student; create table t_student( id int primary key auto_increment, name varchar(20) not null comment '姓名', birthday date comment '生日' )Eng

  • mysql日期和时间的间隔计算实例分析

    本文实例讲述了mysql日期和时间的间隔计算.分享给大家供大家参考,具体如下: 我们首先得明确一点,mysql间隔值主要用于日期和时间计算,如果我们要要创建间隔值,可以使用以下表达式: INTERVAL expr unit 然后嘞,我们得了解,INTERVAL关键字是确定间隔值的expr,以及指定间隔单位的单位. 例如,要创建1天间隔,我们就要使用以下表达式: INTERVAL 1 DAY 不过我们要注意,INTERVAL和UNIT不区分大小写,因此以下表达式与上述表达式相当: interval

  • MySQL事务与锁实例教程详解

    目录 MySQL事务和锁 事务 事务的控制语句 事务隔离级别设置 脏读 不可重复读 幻读 锁机制 InnoDB的行级锁 锁实战 死锁 总结 MySQL事务和锁 事务 说到关系型的数据库的事务,相信大家对四大特性都不陌生,分别是原子性.一致性.隔离性.持久性,简称为ACID特性. MySQL中支持3种不同的存储引擎: MyISAM存储引擎.Memory存储引擎.和InnoDB存储引擎 注:只有InnoDB才支持事务. 事务的控制语句 控制语句 作用 begin或者start transaction

  • Yii2搭建后台并实现rbac权限控制完整实例教程

    1.安装yii2 未安装的请参考yii2史上最简单式安装教程,没有之一 已安装的请继续看下一步操作 2.配置数据库 2.1 配置数据库 修改common/config/main-local.php 实际项目中本地的数据库往往跟线上数据库不一致, 我们这里配置到main-local.php就可以了,产品上线后,我们可以使用git或者svn忽略掉main-local.php,线上直接部署. 我们这里使用的mysql数据库,配置如下 当然啦,上面红圈圈的信息需要你自己手动修改掉,要是十分巧合跟我的一样

  • php单元测试phpunit入门实例教程

    本文实例讲述了php单元测试phpunit.分享给大家供大家参考,具体如下: 这篇文章提供了一些phpunit官方教程没有提到的信息,帮助初学者快速了解php单元测试,在phpunit官网提供了详细的中文教程,可选多种格式下载 phpunit官网地址:https://phpunit.de/ 何为单元测试: 指对软件中的基本单元进行测试,如函数.方法等,以检查其返回值或行为是否符合预期:实际中软件是很复杂的,由许多组件构成,执行流程连贯在一起,要进行单元片段的测试,就需要为其提供执行上下文(或者说

随机推荐