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 字段等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)