Oracle与MySQL的数据类型转换总结

来源:互联网 发布:页面加载时执行js 编辑:程序博客网 时间:2024/05/22 06:12

  • MySQL与Oracle数据类型对照:

mysqloracleBIGINTNUMBER(19, 0)BITRAWBLOBBLOB, RAWCHARCHARDATEDATEDATETIMEDATEDECIMALFLOAT (24)DOUBLEFLOAT (24)DOUBLE PRECISIONFLOAT (24)ENUMVARCHAR2FLOATFLOATINTNUMBER(10, 0)INTEGERNUMBER(10, 0)LONGBLOBBLOB, RAWLONGTEXTCLOB, RAWMEDIUMBLOBBLOB, RAWMEDIUMINTNUMBER(7, 0)MEDIUMTEXTCLOB, RAWNUMERICNUMBERREALFLOAT (24)SETVARCHAR2SMALLINTNUMBER(5, 0)TEXTVARCHAR2, CLOBTIMEDATETIMESTAMPDATETINYBLOBRAWTINYINTNUMBER(3, 0)TINYTEXTVARCHAR2VARCHARVARCHAR2, CLOBYEARNUMBER

  • MySQL中TIMESTAMP与DATETIME区别

(1) MySQL中如何表示当前时间?

其实,表达方式还是蛮多的,汇总如下:

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP()

NOW()

LOCALTIME

LOCALTIME()

LOCALTIMESTAMP

LOCALTIMESTAMP()


(2) 关于TIMESTAMP和DATETIME的比较


一个完整的日期格式如下:YYYY-MM-DD HH:MM:SS[.fraction],它可分为两部分:date部分和time部分,其中,date部分对应格式中的“YYYY-MM-DD”,time部分对应格式中的“HH:MM:SS[.fraction]”。对于date字段来说,它只支持date部分,如果插入了time部分的内容,它会丢弃掉该部分的内容,并提示一个warning。

TIMESTAMP和DATETIME的相同点:

1> 两者都可用来表示YYYY-MM-DD HH:MM:SS[.fraction]类型的日期。

 

TIMESTAMP和DATETIME的不同点:

1> 两者的存储方式不一样

对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。

而对于DATETIME,不做任何改变,基本上是原样输入和输出。

2> 两者所能存储的时间范围不一样

timestamp所能存储的时间范围为:'1970-01-01 00:00:01.000000' 到 '2038-01-19 03:14:07.999999'。

datetime所能存储的时间范围为:'1000-01-01 00:00:00.000000' 到 '9999-12-31 23:59:59.999999'。

 

总结:TIMESTAMP和DATETIME除了存储范围和存储方式不一样,没有太大区别。当然,对于跨时区的业务,TIMESTAMP更为合适。