日期类型

在PL/SQL中使用日期类型(MySQL) 日期类型在PL/SQL编程中起着重要的作用。它们允许我们存储和操作日期和时间数据。在本文中,我们将探讨如何在PL/SQL中使用日期类型,特别是在MySQL数据库中。我们将介绍日期类型的基本概念、日期类型的操作和一些示例代码。在MySQL中,有几种日期类型可供选择,包括DATEDATETIMETIMESTAMP和TIME。这些类型允许我们存储和操作不同精度的日期和时间数据。 阅读详情

Mysql提供数据类型来存储不同种类的日期信息。在这term YYYY,MM,DD,hh,mm,and ss代表年,月,日 ,小时,分钟,和秒。


Type                           storage Required                                                              Range

Date                          3bytes                                                                                  ‘1000-01-01’ to ‘9999-12-31’

Time                           3bytes                                                                                ‘-838:59:59’ to   ‘838:59:59’

DATETIME                 8bytes                                                                                '1000-01-01   00:00:00'  to  '9999-12-31 23:59:59'


TIMESTAMP         4bytes                                                                                     '1970-01-01   00:00:00' to mid-year 2037

YEAR                     1bytes                                                                                      1910 to 2155

这个0值表示一个格式0000-00-00对于DATE和‘00:00:00’对于TIME


日期的展示ISO 8610格式,可以改变显示方式使用DATE_FORMAT()函数


对于日期条目:MYsql 期望接收日期类型以ISO格式,或者至少是和ISO格式相近的,那就是说日期类型必须给year-month-day的顺序,尽管

1.开始的0在月和日值可以不忽略,例如2000-1-1 和2000-01-01都被认为是合法的

2.日期不符需要的不是'-';可以使用其他分隔如‘/';

3.两个数字的日期可以被转化为四个数字的年,你应该能够注意基于如下规则70到99代表1970年到1999,因此00到69代表2000到2069.它是更好的提供四个数字的值来避免转换

如果需要加载不能接受的格式,应该把他们转换为ISO格式。


5.5.1 这DATE,TIME,DATETIME,和YEAR 日期类型

Date数据类型代表日期值在’YYYY-MM-DD‘格式。Year数据类型仅仅代表年的值,你可以声称列为YEAR(4)或者YEAR(2)来获得一个4个数字或两个数字来展示格式。如果你没有指定展示宽度,默认器时4个数字。

5.5.2 这Timestamp数据类型

这timestamp类型存储日期和时间类型。内部存储是UTC,转换为目前时间区域。这TIMESTAMP数据类型可以被初始化或被自动更新到目前的日期和时间当没有明确的指定值。你可以指定任何单独timestamp列在表中应该被初始化用目前的时间当记录被创建使用insert或replace,被更新使用现在的时间当记录被改变使用update。

知道自动初始化和更新的特征是很重要的。

这个特征能够使用timestamp来跟踪记录修改的次数,但是可能是一个问题的源泉没有意思到初始化。

为了控制初始化和更新对于timestamp,你应该增加default current——timestamp和on update——timestamp属性在这timestamp列的定义当创建表和改变表时。这个default_timestamp属性引发被初始化使用被创建的时间。这个on update current_timestamp 属性引发列被更新使用目前时间当它被改变时。

为了兼容就版本的mysql,如果没有指定default和on的属性,mysql自动分配第一个timestamp列两个属性。


mysql> create table ts_test1(
    -> ts1 timestamp,
    -> ts2 timestamp,
    -> data char(30)
    -> );
Query OK, 0 rows affected (0.06 sec)


mysql> describe ts_test1;
+-------+-----------+------+-----+---------------------+-----------------------------+
| Field | Type      | Null | Key | Default             | Extra                       |
+-------+-----------+------+-----+---------------------+-----------------------------+
| ts1   | timestamp | NO   |     | CURRENT_TIMESTAMP   | on update CURRENT_TIMESTAMP |
| ts2   | timestamp | NO   |     | 0000-00-00 00:00:00 |                             |
| data  | char(30)  | YES  |     | NULL                |       


mysql> insert into ts_test1(data) values('original_value');


Query OK, 1 row affected (0.03 sec)


mysql> select* from ts_test1;
+---------------------+---------------------+----------------+
| ts1                 | ts2                 | data           |
+---------------------+---------------------+----------------+
| 2016-05-31 21:32:48 | 0000-00-00 00:00:00 | original_value |
+---------------------+---------------------+----------------+



 update ts_test1 set data='updated_value';
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0


mysql> select* from ts_test1;
+---------------------+---------------------+---------------+
| ts1                 | ts2                 | data          |
+---------------------+---------------------+---------------+
| 2016-05-31 21:33:47 | 0000-00-00 00:00:00 | updated_value |
+---------------------+---------------------+---------------+
1 row in set (0.04 sec)


如果指定:

mysql> create table ts_test2(
    -> created_time timestamp default current_timestamp,
    -> data char(30)
    -> );
Query OK, 0 rows affected (0.04 sec)


mysql> insert into ts_test2(data) values('original_value');
Query OK, 1 row affected (0.03 sec)


mysql> select* from ts_test2;
+---------------------+----------------+
| created_time        | data           |
+---------------------+----------------+
| 2016-05-31 21:36:42 | original_value |
+---------------------+----------------+


mysql> update ts_test2 set data='updated_value';
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0


mysql> select* from ts_test2;
+---------------------+---------------+
| created_time        | data          |
+---------------------+---------------+
| 2016-05-31 21:36:42 | updated_value |
+---------------------+---------------+

更新也不变

mysql> create table ts_test3(
    -> updated_time timestamp on update current_timestamp,
    -> data char(30)
    -> );
Query OK, 0 rows affected (0.06 sec)


mysql> insert into ts_test3(data) values('original_value');
Query OK, 1 row affected (0.03 sec)


mysql> select * from ts_test3;
+---------------------+----------------+
| updated_time        | data           |
+---------------------+----------------+
| 0000-00-00 00:00:00 | original_value |
+---------------------+----------------+
1 row in set (0.03 sec)


mysql> update ts_test3 set data='updated_value';
Query OK, 1 row affected (0.04 sec)
Rows matched: 1  Changed: 1  Warnings: 0


mysql> select * from ts_test3;
+---------------------+---------------+
| updated_time        | data          |
+---------------------+---------------+
| 2016-05-31 21:42:52 | updated_value |
+---------------------+---------------+


你可以选择使用current_timestamp 不适用或者一个或者两个在一个timestamp列,但是不能使用default current_timestamp 在一列但是使用on update current——timestamp用在另外的一列。

可以使用如下达到目的:

mysql> create table ts_test5(
    -> created timestamp default 0
    -> ,
    -> updated timestamp on update current_timestamp,
    -> data char(30)
    -> );
Query OK, 0 rows affected (0.06 sec)


mysql> insert into ts_test5(created,data)
    -> values(null,'original_value');
Query OK, 1 row affected (0.04 sec)


mysql> slect* from ts_test5;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'slect* from ts_test5' at line 1
mysql> select* from ts_test5;
+---------------------+---------------------+----------------+
| created             | updated             | data           |
+---------------------+---------------------+----------------+
| 2016-05-31 21:53:04 | 0000-00-00 00:00:00 | original_value |
+---------------------+---------------------+----------------+
1 row in set (0.03 sec)


mysql> update ts_test5 set data='updated_value';
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0


mysql> select* from ts_test5;
+---------------------+---------------------+---------------+
| created             | updated             | data          |
+---------------------+---------------------+---------------+
| 2016-05-31 21:53:04 | 2016-05-31 21:53:48 | updated_value |
+---------------------+---------------------+---------------+


【ESP32】SPI SRAM memory test fail。External RAM failed memory test! log日志报错如下:这两条报错信息表明外部 SPI SRAM(静态随机存取存储器)的内存测试失败。 阅读详情

相关推荐

IEEE PHM 2012轴承数据实战:用LSTM预测剩余寿命的完整流程与调参心得

本文详细解析了如何利用IEEE PHM 2012轴承数据集和LSTM模型进行轴承剩余寿命预测。从数据预处理、特征工程到LSTM模型架构设计和调参技巧,提供了完整的实战流程。特别分享了FEMTO-ST数据集的处理方法、RUL标签构建策略以及提升预测精度的关键技巧,帮助工程师实现更准确的预测性维护。

weixin_31100517的博客 368

JAVA Excel导入数据,存在数字类型、日期类型格式问题解决

数字类型: java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell 产生原因:excel表格中的数据如果是纯数字,excel会将该单元格变成number类型,而java后端接收的为string类型,所以报错 解决方法:在读取数据前设置cell的type public static voi...

ChickenBro_的博客 7979

rk3568 OpenHarmony4.0如何使用中文输入法

问题:rk3568开发板 OpenHarmony4.0release系统自带输入法kikaInput软件只有英文输入,不含中文输入,不方便。本文基于rk3568开发板 OpenHarmony4.0release移植了laval社区发布的开发者手机中的搜狗输入法(测试版),实现了中文输入,为OpenHarmony4.0release的其他开发板中文输入提供参考。

Devlin_的博客 2913

sqlserver date类型和字符串比较_经常被面试官问道的JavaScript数据类型知识你真的懂吗?

之前面试了几个开发者,他们确实做过不少项目,能力也是不错的,但是发现js基础不扎实, 于是决定写一下这篇javascrip数据类型相关的基础文章,其实也不仅仅是因为面试了他们,之前自己在面试的时候,也曾经被虐过,面试官说过的最深刻的一句话我到现在都记得。基础很重要,只有基础好才会很少出bug,大多数的bug都是基础不扎实造成的。这里给出两道我们公司数据类型基础相关的面试题和答案,如果都能做对并且知...

weixin_39518678的博客 599

华为使用MicroG安装并使用Google服务教程

鉴于众多华为手机用户因无法使用Google服务而感到不便,我经过多次摸索和测试,总结了一份简单易懂的教程,希望能够帮助到大家。无论是需要使用Google Play商店下载应用,还是需要使用Google服务进行工作和学习,本文将详细介绍如何在华为手机上安装并使用Google服务。二、前置条件软件要求:Aurora Store(替代Google Play商店)、MicroG Companion、MicroG Server(替代Google框架)

weixin_41926602的博客 3万+

【学习笔记】计算机网络 第八章 无线局域网(WLAN)

计算机网络 第八章 无线局域网(WLAN)

Vera_shsf的博客 1243

11.2 日期和时间数据类型

文章目录 官方文档地址:11.2 Date and Time Data Types 表示时间值的日期和时间数据类型是DATE、TIME、DATETIME、TIMESTAMP和YEAR。每个类型都有一个有效值范围,以及一个“零”值,当你指定一个MySQL不能表示的无效值时,这个“零”值可能会被使用。TIMESTAMP和DATETIME类型具有特殊的自动更新行为,参考11.2.5 自动初始化和更新TIMESTAMP和DATETIME。 关于时间数据类型存储要求的信息,参见11.7 数据类型存储要求。 用于描述

一线大码 8003

00 — Intel xe SVM 内核实现精读系列专栏导读

本文系统介绍了Intel Xe GPU的共享虚拟内存(SVM)实现机制。第一部分通过概念地图阐述SVM的六个核心概念及其关系;第二部分通过三个测试用例解析SVM关键功能:fault生命周期验证、madvise与VRAM迁移、跨GPU一致性;第三部分深入内核实现,包括初始化/销毁流程、Page Fault处理、MMU Notifier失效路径、异步垃圾回收、VRAM迁移机制、madvise实现原理,以及与ROCm SVM的对比。文章建议按功能模块顺序学习,从基本概念到测试用例,再深入内核实现细节,最后对比不同

图形/计算GPU的驱动与虚拟化技术分享园地 1669

(三)数据库三种基本类型

MySQL数据库提供了多种数据类型,其中包括数字类型、时间和日期类型、字符串类型。

Thewei666的博客 3861

2025年CSP-J初赛真题及答案解析(完整版)

2025年CSP-J初赛真题及答案解析(完整版)

王老师青少年编程 1万+

Linux安装MinIO(图文解说详细版)

最近开个新坑,就是在linux环境中操作开发环境,带大家玩转Linux,会整理出一篇Linux的专栏,欢迎大家订阅!! 富贵同学linux环境为CentOS7.8 版本。 上期跟大家说了一下OpenJDK的安装,这次说一下minio的安装 第一步,进入/opt 目录,创建minio文件夹 cd /opt mkdir minio 第二步,wget下载安装包: wget https://dl.minio.io/server/minio/release/linux-amd64/minio 第三步,进入m

编码人生 5万+

2-2日期时间类型基础

1.时间日期类型 时间日期类型用于日期和时间的表示 包括:date(日期型),datetime(日期时间型),timestamp(时间戳型),time(时间型),year(年份) 通过实际的操作,给大家演示一下是如何操作的 我们打开一个终端,我们输入mysql hxf show tables;我们看一下当前有那些表 我们新建一个表,create table,这个表名叫testd,字段名我们叫注册的时间,我们定义为日期型,第二个注册时间,我们定义为,时间型,第三个,我们定义为日期时间型,第四个,我们定义为

山兔的博客 3204

Cesium初级开发教程之三十:Primitive集合

教程示例网站:https://thomaz529.github.io。

484

SpringMVC日期类型转换问题三大处理方法归纳

前言         我们在SpringMVC开发中,可能遇到比较多的问题就是前台与后台实体类之间日期转换处理的问题了,说问题也不大,但很多人开发中经常会遇到这个问题,有时很令人头疼,有时间问题暴露的不是很明显,然后逐渐对问题进行跟踪,会发现是日期类型转换失败“映射”不到对应的持久类的日期属性上造成的,由此我还特意写过一篇博文:SpringMVC中出现" 400 Bad Request "错

Java我人生的技术博客 9万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

mybatis中关于日期类型问题汇总

mybatis中关于日期类型问题汇总 mybatis中jdbcType属性 我们平时开发时候,编写三层架构值dao对应的mapper文件,编写java类映射数据库字段,有个字段jdbcType,很少人注意到。 <insert id="insertALl" parameterType="java.util.List"> insert into table values(name = #{name,jdbcType=VARCHAR}) </insert> 好比这个SQLjdbcType

极客鼠之家 7439

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Spring boot集成Elasticsearch填坑之日期类型

Spring boot 集成 Elasticsearch 时的日期类型设置环境问题解决方案 环境 Java: 1.8 Spring Boot: 2.3.2.RELEASE Elasticsearch: 7.9.2 问题 当实体类设置日期类型为Date时,保存数据没有问题,但查询时报错: java.time.DateTimeException: Unable to obtain Instant from TemporalAccessor: {},ISO resolved to 2007-08-09 of t

dao_feng的博客 4722

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

MongoDB的日期类型

和。

m0_67473536的博客 4876

PostgreSql 日期类型处理

PostgreSql 日期类型处理

lwy 2419

MySQL日期类型

MySQL日期类型有5种,分别是DATETIME、 TIMESTAMP、DATE、TIME和YEAR。 前三种比较常用。 这里对比下 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示 DATETIME 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:

hustzw07的博客 2905

MySQL的日期类型

MySQL的日期类型分为五种:分别是year,date,time,datetime,timestamp 各类型的存储空间,最值和零值 类型 存储空间 最小值 最大值 零值 YEAR 1 1901 2155 0000 DATE 4 1000-01-01 9999-12-31 0000-00-00 TIME 3 -838:59:59 838:59:59 0000:00:00 ...

Wu 2489

ArcGIS中的日期类型

ArcGIS中的日期类型有别于其他数据类型,处理起来比较麻烦。本文将从存储、显示、查询、Flex/java调用及转换方面,探讨日期类型的机理并对常见问题进行汇总,希望对读者能有所帮助。 存储 shapefile或coverage存储的日期格式为:yyyy-mm-dd。需要注意的是,这两种数据类型只能存储日期,不能存储时间,时间部分会被截掉;如果要根据时间做时态数据的显示和分...

dengkangong8549的博客 3817

sqlldr导入日期类型的数据

sqlldr导入日期类型的数据LOAD DATA   INFILE *   INTO TABLE modified_data   (  rec_no                      "my_db_sequence.nextval",      region                      CONSTANT '31',      time_loaded             

enchanterblue的专栏 3759

日期类型与字符串之间的转换

1、日期类型 创建Date对象,表示当前时间         Date now=new Date(); 创建任意日期 DateFormat format=new SimpleDateFormat("yyyy-MM-dd"); Date date=format.parse("1986-10-22");//将字符串类型转换成日期类型 2、字符串类型 日期类型可以直接输出,即 DateF

仰望星空 6761

MySQL中,关于日期类型的那些事儿,你知道哪些?

但是如果使用默认的操作系统时区,则每次通过时区计算时间时,要调用操作系统底层系统函数 __tz_convert(),而这个函数需要额外的加锁操作,以确保这时操作系统时区没有修改。除了 DATETIME,日期类型中还有一种 TIMESTAMP 的时间戳类型,其实际存储的内容为‘1970-01-01 00:00:00’到现在的毫秒数。在上面的表 User 中,列 register_date 表示注册时间,DEFAULT CURRENT_TIMESTAMP 表示记录插入时,若没有指定时间,默认就是当前时间。

我爱娃哈哈的专栏 734

Sql中日期类型的比较

一.存储日期的字段为日期类型MySql(Date、DateTime、TimeStamp等): 方法一:直接比较 select * from test where create_time between ‘2015-03-03 17:39:05’ and ‘2016-03-03 17:39:52’;方法二:用unix_timestamp函数,将字符型的时间,转成unix时间戳 select *

根号三 5万+

MySQL 日期类型及默认设置

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

gxy_2016的博客 16万+
上一篇: 非二进制字符串数据:CHAR,VARCHAR,TEXT
下一篇: 12.2.12 创建有响应的用户界面 捕获异常
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值