zoukankan      html  css  js  c++  java
  • MySQL cookbook读书笔记第六章

    1,修改MySQL中的日期的格式

    在显示一个日期值时,如果没有特别指定,MySQL按照ISO格式显示日期即(CCYY-MM0DD)。如果不希望按照MySQL的默认格式输出时间和日期值,可以使用date_format()或者time_format()函数按照用户期望的格式重写日期或者时间值

    image

    date_format(),time_format()和str_to_date()三个函数都接受格式化串作为参数:

    imageimage

    image

    image

    2,设置客户端时区

    如果客户端和服务器处在不同的时区,那么客户端在服务器上保存timestamp类型值时,实际保存的结果不是正确的utc时间。

    解决方法:当客户端连接到服务器时,通过设置系统变量time_zone来改变客户端时区.

    假定服务器和客户端是同一时区:

    image

    客户端查询的值与数据库中值相同,但是如果与服务器不在同一时区就会错误,我们更改session time_zone=’+04:00’那么查询之后相应地时间也会变化

    image

    3,获取当前日期或者时间

    可以使用curdate(),curtime()或者now()函数来获得当前的日期和时间,使用utc_date,utc_time或者utc_timestamp()函数获得当前的utc日期和时间

    使用timestamp来跟踪行修改时间:

    首先创建一个包含timestamp类型列的表tsdemo1:

    image

    查看此时的tsdemo1的属性:

    image

    此时如果想tsdemo1表中插入之,ts列会记录插入的时间

    image

    更新操作,同样也会记录更新时的时间(更新为原来值时,时间不做更新):

    image

    如果只希望timestamp列自动初始化为行插入的日期和时间,不希望以后发生变化,那么可以使timestamp列举有

    auto-initialize属性,但没有auto-update属性

    image

    此时,表的属性:

    image

    没有tsdemo1中的on update current_timestamp

    update后,timestamp不做更新:

    image

    4,从日期或者时间值中分解出个部分值

    a,使用特定函数从时间或者日期中取出一个特定部分,例如month()函数,minute()函数

    b,使用格式化函数date_format()或者time_format()和一个特定的格式化串来得到一个日期或者时间值中分解出需要的部分

    c,将一个时间或者日期当作一个字符串,然后使用left()或者mid()函数从其中得到所需要的部分。

    image

    image

    extract()用于分解日期或者时间值的函数

    image

    使用格式化函数分解日期或者时间值:

    image

    image

    好处:按照用户指定的格式来显示分解得到的结果

    使用字符串分解时间或者日期值:

    image

    5,计算两个日期或时间之间间隔

    使用时间差函数:

    image

    image

    计算间隔,并将间隔分为时、分、秒显示:

    image

    还可以使用timestampdiff(unit,val1,val2):

    image

    使用基本时间单位来计算时间间隔:

    image

    6,将一个日期和时间切换时区

    convert-tz()函数接受三个参数:一个date-and-time值,两个时区指示器。

    image

    因为我的mysql数据库中没有支持时区名的时区表,我尝试安装时区表不知道为什么还是NULL,使用utc是ok的

    找到了出错的原因是我登录mysql时指定了登录的表为cookbook,而时区表是在mysql目录下的,这里不成功是正常的

    image

  • 相关阅读:
    LeetCode120 Triangle
    LeetCode119 Pascal's Triangle II
    LeetCode118 Pascal's Triangle
    LeetCode115 Distinct Subsequences
    LeetCode114 Flatten Binary Tree to Linked List
    LeetCode113 Path Sum II
    LeetCode112 Path Sum
    LeetCode111 Minimum Depth of Binary Tree
    Windows下搭建PHP开发环境-WEB服务器
    如何发布可用于azure的镜像文件
  • 原文地址:https://www.cnblogs.com/burness/p/3756054.html
Copyright © 2011-2022 走看看