一文教会你在MySQL中使用DateTime

目录
  • MySQL 日期时间教程
  • MySQL 日期和时间类型
  • MySQL 日期时间
  • 简单的日期和时间计算
  • 日期函数的基本算术运算
  • NOW() 函数
  • CURRENT_DATE() 函数
  • MySQL 日期时间与时间戳
  • 结论

MySQL 日期时间教程

在本教程中,我将通过示例解释 MySQL DATE 和 TIME 函数。

DATETIME 用于存储日期和时间的值。默认情况下,DATETIME 值的范围从 1000-01-01 00:00:00 到 9999-12-31 23:59:59。它使用 5 个字节进行存储。

DATETIME 格式的语法:

YYYY-MM-DD HH:MM:SS

MySQL 日期和时间类型

MySQL 中有许多有用的日期和时间函数。我见过太多的应用程序在代码级别执行日期计算,而使用内置 MySQL 函数可以完成相同的操作。然而,在我们开始使用这些函数之前,让我们刷新一下记忆,看看 MySQL 可以使用哪些日期和时间类型。


DATETIME


YYYY-MM-DD HH:MM:SS


DATE


YYYY-MM-DD


TIMESTAMP


YYYYMMDDHHSSMM


TIME


HH:MM:SS


YEAR


YYYY

MySQL 日期时间

MySQL 在读取日期格式方面非常宽松。尽管使用约定是明智的,但您可以使用任何其他您喜欢的标点符号。例如,现在创建一个表并插入虚拟数据,如下所示。

CREATE TABLE vatsa(Dt DATETIME);

现在,以正确的格式插入数据,如下所示。

INSERT INTO vatsa(Dt) VALUES('2020-09-14 23:18:17');

笔记:

您可以使用 '=' 和 '+' 符号代替正确的格式,如下所示:

INSERT INTO vatsa(Dt) VALUES('2020=09=14 23*18*21');

但是尽管我确定它们存在,但我没有找到使用它的充分理由,所以我建议您遵守约定,除非绝对必要。

现在,执行以下查询以查看结果。

SELECT * FROM vatsa;

简单的日期和时间计算

日期计算相对容易。我们要查看的第一个函数是 YEAR() 函数,它返回给定日期的年份。要从值中获取年、月、周、日、季度、日期、时间、小时、分钟和秒的 DATETIME 值,请使用以下语句中所示的函数:

例如:

SELECT YEAR('2020-09-14 23:18:17') AS Year,
    Month('2020-09-14 23:18:17') AS Month,
    Day('2020-09-14 23:18:17') AS Day,
    Hour('2020-09-14 23:18:17') AS Hour,
    Minute('2020-09-14 23:18:17') AS Minute,
    Second('2020-09-14 23:18:17') AS Second,
    Date('2020-09-14 23:18:17') AS Date,
    Time('2020-09-14 23:18:17') AS Time,
    Quarter('2020-09-14 23:18:17') AS Quarter; 

或者,用户可以使用动态方法来获取当前日期时间的日期和时间。

SET @vatsaDATETIME = NOW();  

SELECT YEAR(@vatsaDATETIME) AS Year,
    Month(@vatsaDATETIME) AS Month,
    Day(@vatsaDATETIME) AS Day,
    Hour(@vatsaDATETIME) AS Hour,
    Minute(@vatsaDATETIME) AS Minute,
    Second(@vatsaDATETIME) AS Second,
    Date(@vatsaDATETIME) AS Date,
    Time(@vatsaDATETIME) AS Time,
    Quarter(@vatsaDATETIME) AS Quarter; 

日期函数的基本算术运算  

我们可以使用“+”和“-”运算符对日期执行简单的算术运算。让我们看一些基本的例子。

例如:  

1)  要找出哪一年比给定日期提前五年,您可以使用它。

SET @vatsa = now();
SELECT @vatsa + 5; 

2)  要找出过去五年是哪一年,请使用。

SET @vatsa = now();
SELECT @vatsa – 5; 

现在,让我们讨论一个基本的实时示例。

SET @vatsa = now();
SELECT @vatsa - 5 AS PAST,
    year(@vatsa) AS CURRENT,
    @vatsa + 5 AS FUTURE; 

NOW() 函数

当然,您不必对日期进行硬编码。MySQL 非常有能力告诉日期和时间,使用 NOW() 函数。并且,在执行此语句时,它会返回当前日期和时间。

SELECT NOW();

CURRENT_DATE() 函数

或者只是使用 CURRENT_DATE() 函数的日期。并且,在执行此语句时,它会返回当前日期。

SELECT CURRENT_DATE(); 

MySQL 日期时间与时间戳

TIMESTMP 类似于 MySQL 中的 DATTIME。TIMESTAMP 需要 4 个字节,但 DATETIME 需要 5 个字节。

TIMESTAMP 列存储完整的 14 个字符,但您可以以不同的方式显示它。例如,如果将列定义为 TIMESTAMP(2),则只会显示两位数的年份,但会存储完整的值。如果您稍后决定显示完整值,您可以更改表定义,完整值将出现。

下面列出了定义 TIMESTAMP 的各种方法以及结果显示。


TIMESTAMP(14)


YYYYMMDDHHMMSS


TIMESTAMP(12)


YYMMDDHHMMSS


TIMESTAMP(10)


YYMMDDHHMM


TIMESTAMP(8)


YYYYMMDD


TIMESTAMP(6)


YYMMDD


TIMESTAMP(4)


YYMM


TIMESTAMP(2)


YY

结论

在本文中,我通过各种示例讨论了 MySQL 中 DATE 和 TIME 函数的概念。

到此这篇关于在MySQL中使用DateTime的文章就介绍到这了,更多相关MySQL使用DateTime内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • mysql datetime查询异常问题解决

    mysql datetime查询异常 异常:Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp (2011-05-25 11:38:40) 描述:非空无默认值的Datetime类型字段,查询时程序报以下错误: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp 解决方法:数据库连接串添加zeroDateTime

  • mysql中datetime类型设置默认值方法

    通过navicat客户端修改datetime默认值时,遇到了问题. 数据库表字段类型datetime,原来默认为NULL,当通过界面将默认值设置为当前时间时,提示"1067-Invalid default value for 'CREATE_TM'",而建表的时候,则不会出现这个问题,比如建表语句: CREATE TABLE `app_info1` ( `id` bigint(21) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', `a

  • MySQL中datetime和timestamp的区别及使用详解

    一.MySQL中如何表示当前时间? 其实,表达方式还是蛮多的,汇总如下: CURRENT_TIMESTAMP CURRENT_TIMESTAMP() NOW() LOCALTIME LOCALTIME() LOCALTIMESTAMP LOCALTIMESTAMP() 二.关于TIMESTAMP和DATETIME的比较 一个完整的日期格式如下:YYYY-MM-DD HH:MM:SS[.fraction],它可分为两部分:date部分和time部分,其中,date部分对应格式中的"YYYY-MM-

  • Mysql中的Datetime和Timestamp比较

    mysql中用于表示时间的三种类型date, datetime, timestamp (如果算上int的话,四种) 比较容易混淆,下面就比较一下这三种类型的异同 相同点 都可以用于表示时间 都呈字符串显示 不同点 1.顾名思义,date只表示'YYYY-MM-DD'形式的日期,datetime表示'YYYY-MM-DD HH:mm:ss'形式的日期加时间,timestamp与datetime显示形式一样. 2.date和datetime可表示的时间范围为'1000-01-01'到'9999-12

  • 如何创建一个创建MySQL数据库中的datetime类型

    目录 一.domain用法及示例 二.创建MySQL中datetime类型 三.create type用法及示例 环境系统平台:Microsoft Windows (64-bit) 10版本:4.5 瀚高数据库中支持使用以下语句创建用户定义的数据类型: ​CREATE DOMAIN​:它创建了一个用户定义的数据类型,可以有可选的约束,基于其他基本类型,实质是定义一个域. ​CREATE TYPE​:它通常用于使用存储过程创建复合类型(两种或多种数据类型混合的数据类型). 一.domain用法及示

  • 一文教会你在MySQL中使用DateTime

    目录 MySQL 日期时间教程 MySQL 日期和时间类型 MySQL 日期时间 简单的日期和时间计算 日期函数的基本算术运算 NOW() 函数 CURRENT_DATE() 函数 MySQL 日期时间与时间戳 结论 MySQL 日期时间教程 在本教程中,我将通过示例解释 MySQL DATE 和 TIME 函数. DATETIME 用于存储日期和时间的值.默认情况下,DATETIME 值的范围从 1000-01-01 00:00:00 到 9999-12-31 23:59:59.它使用 5 个

  • python3实现往mysql中插入datetime类型的数据

    昨天在这个上面找了好久的错,嘤嘤嘤~ 很多时候我们在爬取数据存储的时候都需要将当前时间作为一个依据,在python里面没有时间类型可以直接拿来就用的.我们只需要在存储之前将时间类型稍作修饰就行. datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") 如: #插入产品信息 insert_good_sql = """ INSERT INTO T_GOOD(good_name, good_type, img_

  • Mysql中有关Datetime和Timestamp的使用总结

    目录 一.MySQL中如何表示当前时间? 二.关于TIMESTAMP和DATETIME的比较 TIMESTAMP和DATETIME的相同点: TIMESTAMP和DATETIME的不同点: 三.关于TIMESTAMP和DATETIME的自动初始化和更新 参考: 一.MySQL中如何表示当前时间? 其实,表达方式还是蛮多的,汇总如下: CURRENT_TIMESTAMP CURRENT_TIMESTAMP() NOW() LOCALTIME LOCALTIME() LOCALTIMESTAMP L

  • PHP date()格式MySQL中插入datetime方法

    当使用PHP在MySQL中编写查询时,它的适用性将基于MySQL本身进行检查.所以使用MySQL提供的默认日期和时间格式,即'YYYY-MM-DD' 例子: ATE: YYYY-MM-DD Example: 2019-01-28 DATETIME: YYYY-MM-DD HH:MI:SS Example: 2019-01-28 23:50:30 TIMESTAMP: YYYY-MM-DD HH:MI:SS Example: 2019-01-28 23:50:30 YEAR: YYYY or YY

  • MySQL中关于datetime、date、time、str之间的转化与比较

    目录 datetime.date.time.str之间的转化与比较 MySQL日期和时间数据类型(DATE.TIME. DATETIME. TIMESTAMP和YEAR 日期和时间数据类型语法 datetime.date.time.str之间的转化与比较 SELECT NOW(),CURDATE(),CURTIME(), -- datetime 转 date time NOW(), DATE(NOW()), TIME (NOW()), CONCAT(DATE(NOW()), ' ', TIME

  • 详解Mysql数据库date, datetime类型设置0000-00-00默认值(default)报错问题

    现象:MySQL5.7版本之后,date, datetime类型设置默认值"0000-00-00",出现异常:Invalid default value for 'time' 原因:在命令行窗口查看当前的sql_mode配置: select @@sql_mode; 结果如下: ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE,  ERROR_FOR_DIVISION_BY_ZERO, NO_AU

  • Mysql中复制详细解析

    1.mysql复制概念 指将主数据库的DDL和DML操作通过二进制日志传到复制服务器上,然后在复制服务器上将这些日志文件重新执行,从而使复制服务器和主服务器的数据保持同步.复制过程中一个服务器充当主服务器(master),而一个或多个其它服务器充当从服务器(slaves).主服务器将更新重新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器.从服务器在日志中读取的最后一次成功更新的位置.从服务器接受从那时起发

  • mysql中使用instr进行模糊查询方法介绍

    在mysql中使用内部函数instr,可代替传统的like方式查询,并且速度更快. instr 函数,第一个参数是字段,第二个参数是要查询的串,返回串的位置,第一个是1,如果没找到就是0. 例如,查询字段name中带"军"的名字,传统的方法是: select name from 用户表 where name like `%军%'; 用instr的方法: select name from 用户表 where instr('name','军'); 或: select name from 用

  • MySQL中or语句用法示例

    1.mysql中or语法的使用,在mysql语法中or使用注意点. 项目遇到坑,遍历发放奖励数据查询错误!!! $sql = 'SELECT * FROM `vvt_spread_doubleegg_exchange_award` AS p WHERE p.`act_type` = 4 or p.`act_type` = 5 AND p.`user_id` = ' .$user_id ; sql中的or语法一般用于多个条件的查询,上面的语法查询的相当于:两个sql查询出来的数据集合. $sql

随机推荐