Mysql中经常用来存储日期的数据类型有三种:Date、Datetime、Timestamp。
创新互联建站专注于浦北企业网站建设,响应式网站开发,商城建设。浦北网站建设公司,为浦北等地区提供建站服务。全流程按需定制设计,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
Date数据类型:用来存储没有时间的日期。Mysql获取和显示这个类型的格式为“YYYY-MM-DD”。支持的时间范围为“1000-00-00”到“9999-12-31”。
Datetime类型:存储既有日期又有时间的数据。存储和显示的格式为
“YYYY-MM-DD
HH:MM:SS”。支持的时间范围是“1000-00-00
00:00:00”到“9999-12-31
23:59:59”。
Timestamp类型:也是存储既有日期又有时间的数据。存储和显示的格式跟Datetime一样。支持的时间范围是“1970-01-01
00:00:01”到“2038-01-19
03:14:07”。
所有不符合上面所述格式的数据都会被转换为相应类型的0值。(0000-00-00或者0000-00-00
00:00:00)
mysql有丰富的时间函数:
ADDTIME
(date2
,time_interval
)
//将time_interval加到date2
CONVERT_TZ
(datetime2
,fromTZ
,toTZ
)
//转换时区
CURRENT_DATE
(
)
//当前日期
CURRENT_TIME
(
)
//当前时间
CURRENT_TIMESTAMP
(
)
//当前时间戳
DATE
(datetime
)
//返回datetime的日期部分
DATE_ADD
(date2
,
INTERVAL
d_value
d_type
)
//在date2中加上日期或时间
DATE_FORMAT
(datetime
,FormatCodes
)
//使用formatcodes格式显示datetime
DATE_SUB
(date2
,
INTERVAL
d_value
d_type
)
//在date2上减去一个时间
DATEDIFF
(date1
,date2
)
//两个日期差
DAY
(date
)
//返回日期的天
DAYNAME
(date
)
//英文星期
DAYOFWEEK
(date
)
//星期(1-7)
,1为星期天
DAYOFYEAR
(date
)
//一年中的第几天
EXTRACT
(interval_name
FROM
date
)
//从date中提取日期的指定部分
MAKEDATE
(year
,day
)
//给出年及年中的第几天,生成日期串
MAKETIME
(hour
,minute
,second
)
//生成时间串
MONTHNAME
(date
)
//英文月份名
NOW
(
)
//当前时间
SEC_TO_TIME
(seconds
)
//秒数转成时间
STR_TO_DATE
(string
,format
)
//字串转成时间,以format格式显示
TIMEDIFF
(datetime1
,datetime2
)
//两个时间差
TIME_TO_SEC
(time
)
//时间转秒数]
WEEK
(date_time
[,start_of_week
])
//第几周
YEAR
(datetime
)
//年份
DAYOFMONTH(datetime)
//月的第几天
HOUR(datetime)
//小时
LAST_DAY(date)
//date的月的最后日期
MICROSECOND(datetime)
//微秒
MONTH(datetime)
//月
MINUTE(datetime)
//分返回符号,正负或0
SQRT(number2)
//开平方
MySQl中有多种表示日期和时间的数据类型。其中YEAR表示年份,DATE表示日期,TIME表示时间,DATETIME和TIMESTAMP表示日期和实践。它们的对比如下:
YEAR ,字节数为1,取值范围为“1901——2155”
DATE,字节数为4,取值范围为“1000-01-01——9999-12-31”
TIME,字节数为3,取值范围为“-838:59:59——838:59:59”
DATETIME,字节数为8,取值范围为“1000-01-01 00:00:00——9999-12-31 23:59:59”
TIMESTAMP,字节数为4,取值范围为“19700101080001——20380119111407”
当插入值超出有效取值范围时,系统会报错,并将零值插入到数据库中。
首先,mysql中是没有select current_time这么一说的(select是用来查询有结果返回的表达式),select要么调用函数如select current_time(),或者说从数据表查询数据 select current_time from table。
其次,要注意mysql中对应的时间日期格式类型,也就是UPDATE_DATE的字段类型,具体如下:
① 时间日期类型datetime/mysql时间戳timestamp(Ymdhis:20181212121212,对应显示2018-12-12 12:12:12),那么结果应该是:UPDATE T_SYUTYOU SET UPDATE_DATE = now(); ,因为now()保存的结果是一个datetime类型
② 时间型time(his:121212,对应显示12:12:12),那么结果应该是:UPDATE T_SYUTYOU SET UPDATE_DATE = curtime()/current_time(); ,因为curtime()和current_time()一样保存的结果是一个time类型
③ 真正时间戳int unsigned(格林位置时间到目前位置的秒数:1545891091),那么结果应该是:UPDATE T_SYUTYOU SET UPDATE_DATE = unix_timestamp();,因为unix_timestamp()保存的结果是一个真正意义的时间戳
想要了解更多的一些关于MySQL的操作,可以去看看黑马程序员的6天玩转MySQL