MySQL (버전: 5.1.50)의 시간 및 날짜 유형은 다음과 같습니다.
datetime 8바이트 xxxx-xx-xx xx:xx:xx 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
타임스탬프 4바이트 xxxx-xx-xx xx:xx:xx 1970-01-01 00:00:01 ~ 2038
날짜 3bytes xxxx-xx-xx 1000-01-01 ~ 9999-12-31
년 1bytes xxxx 1901 ~ 2155
시간 3bytes xx:xx:xx -838:59:59 ~ 838:59:59 (시간의 덧셈과 뺄셈을 맞추기 위해)
Java (1.6) 에서 시간 및 날짜 유형을 저장할 수 있는 클래스는 주로 다음과 같습니다.
java.util.날짜
java.util.Calendar
java.sql.날짜
java.sql.시간
java.sql.타임스탬프
이전에 mysql에서 쿼리한 시간 및 날짜 유형은 java.util.Date 유형에 배치됩니다. 이것은 일련의 문제를 가져오는데, 첫째, 이 클래스에서 제공하는 시간 연산 함수가 너무 적고, 일반적으로 동작하기 위해서는 java.util.Calendar 로 변환해야 하고, 둘째, java.util.Calendar 를 사용 하더라도 , 매우 편리하지 않습니다. 간단한 아이디어를 실현하기 위해 많은 코드를 작성해야 합니다. java.util.Date 의 데이터 내용 은 xxxx-xx-xx xx:xx:xx이며 때로는 시간이 필요하지 않습니다. 날짜. 데이터베이스 에서 얻은 날짜 유형을 이 클래스에 넣으면 시간 위치에 현재 시간이 자동으로 추가됩니다. 이렇게 하면 원래는 데이터베이스에서 두 날짜가 같으나 꺼내어 이 클래스에 배치하면 더 이상 같지 않기 때문에 시간 오류를 고려하는 것은 골칫거리입니다.
java는 mysql과 쉽게 상호 작용할 수 있도록 세 가지 데이터 유형을 제공합니다.
java.sql.날짜
java.sql.시간
java.sql.타임스탬프
그것들은 모두 클래스의 단순화로 간주될 수 있는 java.util.Date 에서 상속 되며 데이터베이스와 상호 작용하는 데 매우 적합합니다.
===========데이터베이스에 자바 주입 ==========
자바 유형 mysql 유형 성공 여부
날짜 날짜 예
날짜 시간 없음
날짜 타임스탬프
날짜 날짜 시간 없음 시간 날짜 없음 시간 시간 예 시간 타임
스탬프 시간 없음 날짜 시간 없음 타임스탬프 날짜 예 타임스탬프 시간 예 타임스탬프 타임스탬프 예 타임스탬프 날짜시간 예 ======= ===End
Java 주입 데이터베이스 ========
일반 규칙, A가 B를 완전히 포함하는 경우 A는 B에 데이터를 주입할 수 있습니다. 그렇지 않으면 오류가 보고됩니다.
========== 데이터베이스에서 Java로 추출 ==========
mysql类型 java类型 成与否
date date yes
date time yes --------------缺少的部分使用历元
date timestamp yes --------------缺少的部分使用历元
time date yes --------------缺少的部分使用历元
time time yes
time timestamp yes --------------缺少的部分使用历元
timestamp date yes
timestamp time yes
timestamp timestamp yes
datetime date yes
datetime time yes
datetime timestamp yes
==========end 从数据库提取到java=======
不会出错,缺少的部分使用历元,而不是当前日期时间
null to db(null) =====> 也是null
null to db(not null)=======> 数据库报错
db(null) to java==========> 如果单字段出来,则整个entity都是null,如果带着其他不是null的字段出来,则可以实例化entity,本身字段依然是null
db(not null) to java==========> 如果包含日期,则报错,否则为000
最优解决方案,定义成可以为null
java.sql时间系统的运算系列
after,before
compareTo原小于参数返回<0,等于返回=0,大于返回>0
优点:于数据库同类型,可以方便传输(无论是从DB到src还是反方向),方便比较大小
缺点:缺少运算单元,不适合时间跳跃的运算和间隔的运算
总结:calendar具有强大的跳跃运算和间隔运算能力,在需要的时候,可以将sql系列的时间转成calendar。
先设置calendar为历元,然后从sql系列时间中转换,最后再转回sql系列时间。
calendar只用于时间有跳跃的转换,对比运算统一使用sql系统,这样代码将更清晰
날짜 및 달력을 GMT로 초기화하는 방법
new date(0)
calendar.setTimeInMillis(0)
sql series time
static valueOf
new XX(0)
새로운 XX(연도+1900, 월+1,일,시,분,초) ,nano)는 더 이상 사용되지 않으며 생성
toString 또는 SimpleDateFormat
기사 출처: http://blog.csdn.net/weinianjie1/article/details/6310770