[ZZ]MYSQL TIMESTAMP时间戳的一个介绍

Mysql字段默认值设为当前时间 5.5以上版本: alter table test add column createtime datetime DEFAULT NOW() comment ‘创建时间’ 或者 alter table test add column createtime datetime DEFAULT CURRENT_TIMESTAMP comment ‘创建时间’ 5.5及以下版本: alter table... 阅读详情
MySQL目前不支持列的Default 为函数的形式,
  如达到你某列的默认值为当前更新日期与时间的功能,
  你可以使用TIMESTAMP列类型
  下面就详细说明TIMESTAMP列类型
  
  TIMESTAMP列类型
  TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示。
  TIMESTAMP值显示尺寸的格式如下表所示:
  :
  +---------------+----------------+
  | 列类型    | 显示格式    |
  | TIMESTAMP(14) | YYYYMMDDHHMMSS | 
  | TIMESTAMP(12) | YYMMDDHHMMSS  |
  | TIMESTAMP(10) | YYMMDDHHMM   |
  | TIMESTAMP(8) | YYYYMMDD    |
  | TIMESTAMP(6) | YYMMDD     |
  | TIMESTAMP(4) | YYMM      |
  | TIMESTAMP(2) | YY       |
  +---------------+----------------+
  “完整”TIMESTAMP格式是14位,但TIMESTAMP列也可以用更短的显示尺寸创造
  最常见的显示尺寸是6、8、12、和14。
  你可以在创建表时指定一个任意的显示尺寸,但是定义列长为0或比14大均会被强制定义为列长14。
  列长在从1~13范围的奇数值尺寸均被强制为下一个更大的偶数。
  
  列如:
  定义字段长度   强制字段长度
  TIMESTAMP(0) -> TIMESTAMP(14)
  TIMESTAMP(15)-> TIMESTAMP(14)
  TIMESTAMP(1) -> TIMESTAMP(2)
  TIMESTAMP(5) -> TIMESTAMP(6)
  
  所有的TIMESTAMP列都有同样的存储大小,
  使用被指定的时期时间值的完整精度(14位)存储合法的值不考虑显示尺寸。
  不合法的日期,将会被强制为0存储
  
  这有几个含意: 
  1、虽然你建表时定义了列TIMESTAMP(8),但在你进行数据插入与更新时TIMESTAMP列实际上保存了14位的数据(包括年月日时分秒),只不过在你进行查询时MySQL返回给你的是8位的年月日数据。如果你使用ALTER TABLE拓宽一个狭窄的TIMESTAMP列,以前被“隐蔽”的信息将被显示。 
  2、同样,缩小一个TIMESTAMP列不会导致信息失去,除了感觉上值在显示时,较少的信息被显示出。 
  3、尽管TIMESTAMP值被存储为完整精度,直接操作存储值的唯一函数是UNIX_TIMESTAMP();由于MySQL返回TIMESTAMP列的列值是进过格式化后的检索的值,这意味着你可能不能使用某些函数来操作TIMESTAMP列(例如HOUR()或SECOND()),除非TIMESTAMP值的相关部分被包含在格式化的值中。例如,一个TIMESTAMP列只有被定义为TIMESTAMP(10)以上时,TIMESTAMP列的HH部分才会被显示,因此在更短的TIMESTAMP值上使用HOUR()会产生一个不可预知的结果。
  4、不合法TIMESTAMP值被变换到适当类型的“零”值(00000000000000)。(DATETIME,DATE亦然)    
  
  你可以使用下列语句来验证:
  CREATE TABLE test ('id' INT (3) UNSIGNED AUTO_INCREMENT, 'date1' TIMESTAMP (8) PRIMARY KEY('id'));
  INSERT INTO test SET id = 1;
  SELECT * FROM test;
  +----+----------------+
  | id | date1     |
  +----+----------------+
  | 1 | 20021114    |
  +----+----------------+
  ALTER TABLE test CHANGE 'date1' 'date1' TIMESTAMP(14);
  SELECT * FROM test;
  +----+----------------+
  | id | date1     |
  +----+----------------+
  | 1 | 20021114093723 |
  +----+----------------+
  
  你可以使用TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作。
  如果你有多个TIMESTAMP列,只有第一个自动更新。 
  自动更新第一个TIMESTAMP列在下列任何条件下发生: 
  
  1、列值没有明确地在一个INSERT或LOAD DATA INFILE语句中指定。 
  2、列值没有明确地在一个UPDATE语句中指定且另外一些的列改变值。(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。) 
  3、你明确地设定TIMESTAMP列为NULL. 
  4、除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只要将列设为NULL,或NOW()。
  
  CREATE TABLE test (
     'id' INT (3) UNSIGNED AUTO_INCREMENT, 
     'date1' TIMESTAMP (14),
     'date2' TIMESTAMP (14),
     PRIMARY KEY('id')
     );
  
  INSERT INTO test (id, date1, date2) VALUES (1, NULL, NULL);
  INSERT INTO test SET id= 2;
  +----+----------------+----------------+
  | id | date1     | date2     |
  +----+----------------+----------------+
  | 1 | 20021114093723 | 20021114093723 |
  | 2 | 20021114093724 | 00000000000000 |
  +----+----------------+----------------+
  ->第一条指令因设date1、date2为NULL,所以date1、date2值均为当前时间
   第二条指令因没有设date1、date2列值,第一个TIMESTAMP列date1为更新为当前时间,
    而二个TIMESTAMP列date2因日期不合法而变为“00000000000000”
  
  UPDATE test SET id= 3 WHERE id=1;
  +----+----------------+----------------+
  | id | date1     | date2     |
  +----+----------------+----------------+
  | 3 | 20021114094009 | 20021114093723 |
  | 2 | 20021114093724 | 00000000000000 |
  +----+----------------+----------------+
  ->这条指令没有明确地设定date2的列值,所以第一个TIMESTAMP列date1将被更新为当前时间
  
  UPDATE test SET id= 1,date1=date1,date2=NOW() WHERE id=3;
  +----+----------------+----------------+
  | id | date1     | date2     |
  +----+----------------+----------------+
  | 1 | 20021114094009 | 20021114094320 |
  | 2 | 20021114093724 | 00000000000000 |
  +----+----------------+----------------+
  ->这条指令因设定date1=date1,所以在更新数据时date1列值并不会发生改变
   而因设定date2=NOW(),所以在更新数据时date2列值会被更新为当前时间
   此指令等效为 UPDATE test SET id= 1,date1=date1,date2=NULL WHERE id=3;
   
  因MySQL返回的 TIMESTAMP 列为数字显示形式,
  你可以用DATE_FROMAT()函数来格式化 TIMESTAMP 列
  
  SELECT id,DATE_FORMAT(date1,'%Y-%m-%d %H:%i:%s') As date1,
      DATE_FORMAT(date2,'%Y-%m-%d %H:%i:%s') As date2 FROM test;
  +----+---------------------+---------------------+
  | id | date1        | date2        |
  +----+---------------------+---------------------+
  | 1 | 2002-11-14 09:40:09 | 2002-11-14 09:43:20 |
  | 2 | 2002-11-14 09:37:24 | 0000-00-00 00:00:00 |
  +----+---------------------+---------------------+
  
  SELECT id,DATE_FORMAT(date1,'%Y-%m-%d') As date1,
      DATE_FORMAT(date2,'%Y-%m-%d') As date2 FROM test;
      
  +----+-------------+-------------+
  | id | date1    | date2    |
  +----+-------------+-------------+
  | 1 | 2002-11-14 | 2002-11-14 |
  | 2 | 2002-11-14 | 0000-00-00 |
  +----+-------------+-------------+
  
  在某种程度上,你可以把一种日期类型的值赋给一个不同的日期类型的对象。
  然而,而尤其注意的是:值有可能发生一些改变或信息的损失: 
  
  1、如果你将一个DATE值赋给一个DATETIME或TIMESTAMP对象,结果值的时间部分被设置为'00:00:00',因为DATE值中不包含有时间信息。   
  2、如果你将一个DATETIME或TIMESTAMP值赋给一个DATE对象,结果值的时间部分被删除,因为DATE类型不存储时间信息。 
  3、尽管DATETIME, DATE和TIMESTAMP值全都可以用同样的格式集来指定,
  但所有类型不都有同样的值范围。
  例如,TIMESTAMP值不能比1970早,也不能比2037晚,
  这意味着,一个日期例如'1968-01-01',当作为一个DATETIME或DATE值时它是合法的,
  但它不是一个正确TIMESTAMP值!并且如果将这样的一个对象赋值给TIMESTAMP列,它将被变换为0。 
  
  当指定日期值时,当心某些缺陷: 
  
  1、允许作为字符串指定值的宽松格式能被欺骗。例如,,因为“:”分隔符的使用,值'10:11:12'可能看起来像时间值,但是如果在一个日期中使用,上下文将作为年份被解释成'2010-11-12'。值'10:45:15'将被变换到'0000-00-00',因为'45'不是一个合法的月份。 
     
  2、以2位数字指定的年值是模糊的,因为世纪是未知的。MySQL使用下列规则解释2位年值: 在00-69范围的年值被变换到2000-2069。 在范围70-99的年值被变换到1970-1999。
MySQL中的CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP属性解释及应用 timestamp有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下: 1.CURRENT_TIMESTAMP 当要向数据库执行insert操作时,如果有个timestamp字段属性设为 CURRENT_TIMESTAMP,则无论这个字段有没有set值都插入当前系统时间 2.ON UPDATE CURREN... 阅读详情

相关推荐

Android Studio运行报错: failed to load include path ……\platforms\android-35\android.jar的最细解决方案

【代码】Android Studio运行报错: failed to load include path ……\platforms\android-35\android.jar的最细解决方案。

2401_86789230的博客 2万+

MySQL 日期类型及默认设置

MySQL 日期数据默认设置 MySQL 日期类型的区别及用途 MySQL 日期类型的 default 设置 MySQL 常见的日期获取函数 日期类型区别及

gxy_2016的博客 16万+

pcle接口详解&用途说明

它原来的名称为“3GIO”,由英特尔在2001年提出。pcel x16插槽 用途用于显卡、RAID阵列卡,向下兼容PCIE x1/x4/x8/x16。(PCIE x16插槽长89mm,有164根针脚,靠主板外侧端有一卡口,将16x分为前后两组,短插槽有22根针脚,主要用于供电,长插槽142根,主要用于数据传输,具有16通道所带来的高带宽)PCI-E x8插槽插槽用途:全长56mm,有98根针脚,与PCI-E x16比较,主要是数据针脚减少至76根,短的供电针脚仍然是22针脚。

qq_43289307的博客 1万+

MYSQL中怎样设列的默认值为Now()的介绍

MySQL目前不支持列的Default 为函数的形式,如达到你某列的默认值为当前更新日期与时间的功能,你可以使用TIMESTAMP列类型下面就详细说明TIMESTAMP列类型    TIMESTAMP列类型  TIMESTAMP...

194

对西安交大轴承数据集XJTU-SY_Bearing_Datasets进行读取和处理:

故障诊断,对西安交大轴承数据集XJTU-SY_Bearing_Datasets进行读取和处理

qq_44757503的博客 6060

MDK5 Debug调试方法总结

MDK5 Debug调试方法总结

m0_70748084的博客 2万+

timestamp,timestamp(0),timestamp(6)区别

timestamp,timestamp(0),timestamp(6)区别

qq_33256751的博客 4145

深度学习二分类实战:用Python+Keras搞定基因表达数据预测(附完整代码)

本文详细介绍了如何使用Python和Keras构建深度学习模型进行基因表达数据的二分类预测。通过数据预处理、特征选择、神经网络构建及优化策略,特别针对小样本场景提供了调参技巧和模型解释方法。文章还包含完整的代码示例,帮助读者快速掌握深度学习在生物信息学中的应用。

weixin_30642561的博客 245

mysql 默认值 now_MYSQL中怎样设列的默认值为Now()的介绍_MySQL

MYSQL中怎样设列的默认值为Now()的介绍_MySQLMySQL目前不支持列的Default 为函数的形式,如达到你某列的默认值为当前更新日期与时间的功能,你可以使用TIMESTAMP列类型下面就详细说明TIMESTAMP列类型TIMESTAMP列类型TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示。TIMESTAMP值显示尺寸的格式如下表所示::+...

weixin_42284380的博客 399

maya后台批量比对maya文件层级

在cg制作过程中,为了统一制作规范,提高效率我们Pipeline都会制作一个比对层级的工具下面介绍的是maya利用batch文件进行模型与绑定和材质文件进行比对层级。 直接上代码: #!usr/bin/env python # -*- encoding: utf-8 -*- """ @author:MCC @file: compareUI @time: 2018/11/21 16:29 """ i...

CGpipelineTD 1642

区块链技术概述:从比特币到Web3.0

区块链技术正重塑数字世界的信任机制。本文系统梳理了区块链的发展路径:从比特币的PoW共识和UTXO模型,到以太坊的智能合约和账户体系,直至Web3.0的去中心化互联网愿景。文章详细解析了区块链的核心特性(去中心化、不可篡改等)和数据结构,通过流程图展示了比特币交易生命周期和智能合约执行流程,并对比了Web2.0与Web3.0的关键差异。最后,用Python代码实现了包含区块类、交易处理和挖矿机制的简易区块链系统,为理解区块链底层原理提供了实践参考。

闲人编程的博客 455

perl mysql 时间戳_UNIX时间戳的应用 介绍 举例(from_unixtime()/unix_timestamp() )

PHPdate(output format, epoch); Output format example:'r' = RFC 2822 date RubyTime.at(epoch)Pythonimport time first, thentime.gmtime(epoch) time is an array of year, month,day, hour, min, sec, day of w...

weixin_36435829的博客 295

[工作流节点24] 外部用户审批的实现方式:让客户、供应商也能参与流程决策

摘要: 明道云支持通过三种方式实现外部用户审批:1)外部表单审批(推荐方案),通过公开表单让外部用户提交审批意见并自动触发流程;2)链接参数审批,通过含参数的URL实现一键确认;3)API/Webhook审批,适用于系统集成场景。三种方案均无需外部用户登录,支持记录操作日志和安全审计。典型应用包括客户确认报价、供应商发货确认等,实现内外流程无缝衔接。建议根据业务复杂度选择:无代码需求用外部表单,轻量审批用链接参数,系统对接用Webhook。

每日出拳老爷子的博客 347

Mysql教程:介绍TIMESTAMP时间戳的使用

MySQL目前不支持列的Default 为函数的形式,   如达到你某列的默认值为当前更新日期与时间的功能,   你可以使用TIMESTAMP列类型   下面就详细说明TIMESTAMP列类型      TIMESTAMP列类型   TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示。   TIMESTAMP值显示尺寸的格式如...

Be Here 229

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Mysql的timestamp(时间戳)详解以及2038问题的解决方案

mysql的timestamp 虽然好用,但是会有一个2038年的问题,本文将带你们详细了解 mysql的timestamp 以及2038问题

ratel的博客 10万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

mysql的时间戳_MySQL时间戳(Timestamp)函数

1. MySQL 获得当前时间戳函数:current_timestamp, current_timestamp()mysql> select current_timestamp, current_timestamp();+———————+———————+| current_timestamp | current_timestamp() |+———————+———————+| 2008-08-...

weixin_42297904的博客 1万+

mysql时间戳_MySQL 时间戳(Timestamp)函数

1. MySQL 获得当前时间戳函数:current_timestamp, current_timestamp()mysql> select current_timestamp, current_timestamp();+———————+———————+| current_timestamp | current_timestamp() |+———————+———————+| 2008-08-...

weixin_28903391的博客 1230

mysql 查询时间戳(TIMESTAMP)转成常用可读时间格式

mysql 查询时间戳(TIMESTAMP)转成常用可读时间格式 from_unixtime()是MySQL里的时间函数  date为需要处理的参数(该参数是Unix 时间戳),可以是字段名,也可以直接是Unix 时间戳字符串  后面的 '%Y%m%d' 主要是将返回值格式化  例如:  mysql>SELECT FROM_UNIXTIME( 1249488000,

zhangwike的专栏 1631

Mysql中timestamp用法详解

Mysql中timestamp用法详解前言:时间戳(timestamp) 前言:时间戳(timestamp) 前言:时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。使用数字签名技术产生的数据, 签名的对象包括了原始文件信息、 签名参数、 签名时间等信息。广泛的运用在知识产权保护、 合同签字、 金融帐务、 电子报价投标、 股票交易等方面。 一、MySQL中表示当前时间的方法: CURRENT_TIMESTAM

hyfsx的博客 4万+

mysql 中 unix_timestamp和from_unixtime 时间戳函数

1.unix_timestamp 将时间转化为时间戳。(date 类型数据转换成 timestamp 形式整数) 没传时间参数则取当前时间的时间戳 mysql> select unix_timestamp(); +------------------+ | unix_timestamp() | +------------------+ |       1361586358 | +-

lxpbs8851的专栏 12万+

mysql之TIMESTAMP(时间戳)用法详解

这篇文章主要介绍了mysql之TIMESTAMP(时间戳)用法,需要的朋友可以参考下 一、TIMESTAMP的变体 TIMESTAMP时间戳在创建的时候可以有多重不同的特性,如: 1.在创建新记录和修改现有记录的时候都对这个数据列刷新: ? 1 TIMESTAMP DEFAULT CURREN

小明的博客 3961

mysql时间戳什么用_mysql 时间戳的用法

前言:时间戳字段在MySQL中经常使用到,比如需要记录一行数据创建的时间或修改的时间时,我们通常会使用时间戳即timestamp字段。本篇文章主要介绍timestamp字段的使用方法及相关参数,希望大家读完能对timestamp有更深的认识。1.TIMESTAMP字段类型简介timestamp字段类型可存储时间类型数据,timestamp所能存储的时间范围为:'1970-01-01 00:00:0...

weixin_39743824的博客 335

mysql 装时间戳_mysql之TIMESTAMP(时间戳)用法详解

这篇文章主要介绍了mysql之TIMESTAMP(时间戳)用法,需要的朋友可以参考下一、TIMESTAMP的变体TIMESTAMP时间戳在创建的时候可以有多重不同的特性,如:1.在创建新记录和修改现有记录的时候都对这个数据列刷新:TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP2.在创建新记录的时候把这个字段设置为当前时...

weixin_31577599的博客 632

MySQL 时间戳(Timestamp)函数

1. MySQL 获得当前时间戳函数: current_timestamp, current_timestamp() mysql> select current_timestamp, current_timestamp(); ±--------------------±--------------------+ | current_timestamp | current_timestamp() | ±--------------------±--------------------+ | 2008-0

qq_40842756的博客 769

mysql timestamp转换字符串_【mysql将timestamp改成string】

mysql中timestamp和date如何转换为字符串我是要用日期做模糊查询的.timestamp和date本身就是字符串了,模糊查询可以直接用,如果不确定格式,可以用date_format()转换下。例如select * from tb where date_format(ct,'%Y-%m-%d') like '2016-08%';ssm里面如何将mysql的timestamp转为java....

weixin_39822147的博客 1万+

mysql unix_timestamp 格式化_mysql怎么获取时间戳的函数UNIX_TIMESTAMP

mysql怎么获取时间戳的函数UNIX_TIMESTAMP?我们收集了网络上流行的各种关于获取UNIX_TIMESTAMP的方法总结。CREATE TRIGGER cus_info_tbl_tr AFTER INSERT ON cus_info_tblFOR EACH ROWINSERT INTO summary_tbl ( `school_id`, `province_id`, `city_id...

weixin_30998797的博客 778
上一篇: [ZZ]做一个合格的程序员——来自yangcoder
下一篇: [ZZ]firedebug console api
clide
博客等级 码龄20年 4粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值