时间在数据库里用什么形式保存

时间在数据库里用什么形式保存,第1张

Oracle数据库

数据类型为 DATE

包含 世纪、年、月、日、时、分、秒。

占用7 个字节,上面每个部分1 个字节

SQL Server 2005 以前版本

包含两种数据类型:

smalldatetime

占用4 字节,范围1900-1-1~2079-6-6 精度到¡ 分¡

datetime

占用8 字节,范围1753-1-1~9999-12-31 精度到 百分之三秒

SQL Server 2008 新增

time 00:00:000000000 到 23:59:599999999

固定 5 个字节,是使用默认的 100ns 秒的小数部分精度时的默认存储大小。

date 0001-01-01 到 9999-12-31

固定 3 个字节

datetime2

日期范围 0001-01-01 到 9999-12-31

时间范围 00:00:00 到 23:59:599999999

精度小于 3 时为 6 个字节;精度为 3 和 4 时为 7 个字节。

datetimeoffset

日期范围 0001-01-01 到 9999-12-31

时间范围 00:00:00 到 23:59:599999999

时区偏移量范围 -14:00 到 +14:00

默认值为 10 个字节的固定大小,默认的秒的小数部分精度为100ns

MySQL

DATE

日期。支持的范围为'1000-01-01'到'9999-12-31'

DATETIME

日期和时间的组合。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。

TIMESTAMP[(M)]

时间戳。范围是'1970-01-01 00:00:00'到2037 年

TIME

时间。范围是'-838:59:59'到'838:59:59'。

YEAR[(2|4)]

两位或四位格式的年。默认是四位格式。

mysql数据库时间用什么类型的数据

Mysql中经常用来存储日期的数据类型有三种:Date、Datetime、Timestamp。

Date数据类型:用来存储没有时间的日期。Mysql获取和显示这个类型的格式为“YYYY-MM-DD”。支持的时间范围为“1000-00-00”到“9999-12-31”。

Datetime类型:存储既有日期又有时间的数据。存储和显示的格式为“YYYY-MM-DDHH:MM:SS”。支持的时间范围是“1000-00-0000:00:00”到“9999-12-3123:59:59”。

Timestamp类型:也是存储既有日期又有时间的数据。存储和显示的格式跟Datetime一样。支持的时间范围是“1970-01-0100:00:01”到“2038-01-1903:14:07”。

所有不符合上面所述格式的数据都会被转换为相应类型的0值。(0000-00-00或者0000-00-0000:00:00)

java中和数据库Date类型交互的是javasqlDate

javatimeLocalDate没法直接和javasqlDate进行转换,不过可以通过

javatimeLocalDate -> javautilDate -> javasqlDate这个方式进行转换

JDK8中,新增了三个类,用以处理时间。

LocalDate专门处理日期,LocalTime专门处理时间,LocalDateTime包含了日期和时间,而且对于很多复杂的问题,都提供了现成的方法,比如:获取2017年12月的第一个周一,这样的处理,在以前,是很复杂的,而现在,只需要一行代码即可。(使用前,需要将JDK升级到18)

下面,简单了记录了这两个类的一些常见用法:

[java] view plain copy

package test;

import javatimeDayOfWeek;

import javatimeLocalDate;

import javatimeLocalDateTime;

import javatimeLocalTime;

import javatimetemporalTemporalAdjusters;

import javautilCalendar;

/

 Created by lightClouds917

 Date 2017/11/6

 Description:Java8中处理时间和日期的类

SQL  -> Java

--------------------------

date -> LocalDate

time -> LocalTime

timestamp -> LocalDateTime

/

public class DateTest2 {

public static void main(String[] args){

test1();      

test2();

Calendar calendar = CalendargetInstance();

Systemoutprintln(calendargetTime());

}

/

 处理日期 LocalDate

/

public static void test1(){

//获取当前日期   2017-11-06

LocalDate today = LocalDatenow();

Systemoutprintln(today);  

//构造日期   2017-10-08

LocalDate today2 = LocalDateof(2017,10,8);

Systemoutprintln(today2);

//构造日期   2017-02-22    字符串严格按照yyyy-MM-dd      

LocalDate today3 = LocalDateparse("2017-02-22");

Systemoutprintln(today3);

//本月第一天  2017-11-01

LocalDate firstDayOfMonth = todaywith(TemporalAdjustersfirstDayOfMonth());

Systemoutprintln(firstDayOfMonth);

//本月第二天  2017-11-02   第n天

LocalDate secondDayOfMonth = todaywithDayOfMonth(2);

Systemoutprintln(secondDayOfMonth);

//本月最后一天 2017-02-28  方便解决任何年份的二月份多少天

LocalDate lastDayOfMonth = today3with(TemporalAdjusterslastDayOfMonth());

Systemoutprintln(lastDayOfMonth);

//获取2017年12月的第一个周一   2017-12-04  

LocalDate firstDayOf201712 = LocalDateparse("2017-12-01")with(TemporalAdjustersfirstInMonth(DayOfWeekMONDAY));

Systemoutprintln(firstDayOf201712);

}

/

 处理时间  LocalTime

/

public static void test2(){

//获取当前时间  含有毫秒值  17:18:41571

LocalTime now = LocalTimenow();

Systemoutprintln(now);

//获取当前时间   去掉毫秒值   17:45:41

LocalTime now1 = LocalTimenow()withNano(0);

Systemoutprintln(now1);

//00:46:46651  提供了把时分秒都设为0的方法

LocalTime now2 = LocalTimenow()withHour(0);

Systemoutprintln(now2);

//构造时间  00:20:55  

LocalTime time1 = LocalTimeof(0,20,55);

Systemoutprintln(time1);

//构造时间  05:43:22

LocalTime time2 = LocalTimeparse("05:43:22");

Systemoutprintln(time2);

//标准时间 2017-11-06T17:53:15930

LocalDateTime lt = LocalDateTimenow();

Systemoutprintln(lt);

}

}

首先我们必须先明确,数据库只负责存储,也就是说存入和取出的肯定是相同的东西。

那么,如果出现取出与原值不等的情况,可能会是你存入的并不是你所想要存入的数据。

这有很多方面的原因会造成这种情况,比如,在php中,如果你获取一个date('Y-m-d H:i:s'),然后将这个值保存的数据库中,则这个值是和PHP设置的时区有关,set_default_time_zone的值。这个值可以在phpini文件中设置,或者在程序中直接设置。

还有一种情况,就是你将一个表达时间的字符串,保存的数据库的date类型字段中,如果你的字符串不是标准格式,则mysql会自动进行转换,这时会产生与原时间字符串不同的情况。

在一些数据量比较大,而且 *** 作数据库频繁的。此时需要将数据表datatable整块的存入数据库中。

首先得新建一个数据库

DataTable once_rec_date = new DataTable();

这个数据库得跟目标数据库的列的位置和大小都得一样。特别是类型,和位置。就是列的位置和目标数据库的位置,顺序得 一模一样。因为都是块存储,所以地址什么的都得一样,千万不能少一列,自增列可以空在那边。

扩展资料

数据库入门基础知识:

数据库的分类

关系型数据库: 经过数学理论验证 可以保存现实生活中的各种关系数据, 数据库中存储数据以表为单位;非关系型数据库:通常用来解决某些特定的需求如:数据缓存,高并发访问。 存储数据的形式有多种,举例:Redis数据库:通过键值对的形式存储数据。

创建数据库:CREATE DATABASE database_name

删除数据库:DROP DATABASE database_name

选择数据库:USE database_name

创建数据表:CREATE TABLE table_name (column_name column_type)

删除数据表:DROP TABLE table_name

更新数据表信息:

添加表字段:ALTER TABLE table_name ADD new_column DATATYPE

使用FIRST关键字可以将新增列的顺序调整至数据表的第一列:ALTER TABLE table_name ADD new_column DATATYPE FIRST

使用AFTER关键字可以将新增列调整至数据表的指定列之后:ALTER TABLE table_name ADD new_column DATATYPE AFTER old_column

以上就是关于时间在数据库里用什么形式保存全部的内容,包括:时间在数据库里用什么形式保存、mysql数据库时间用什么类型的数据(mysql存时间应什么类型)、请教一个问题,myql原生sql查询,有一个date类型的,如何映射到实体Localdate 字段等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9539016.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存