日期类型

本文介绍了MySQL中Date、DateTime和Timestamp三种时间类型的特点及使用场景,包括它们的存储格式、默认值设置以及时区影响。同时,针对前端接收后端时间数据的转换,提供了JavaScript转换13位时间戳为日期的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL存储时间类型

Date

存储数据格式为:YYYY-MM-DD,支持的范围为’1000-01-01’到’9999-12-31’。
插入数据时Date不能设置default默认值(好像是),可以设置触发器给Date字段添加默认值。

// 触发器,date为表中字段名
BEGIN
	IF NEW.date is NULL THEN
		SET NEW.date = CURDATE();
	END IF;
END

DateTime

日期和时间的组合,存储格式为:YYYY-MM-DD HH:MM:SS,它支持的范围为’1000-01-01 00:00:00’到’9999-12-31 23:59:59’
存什么是什么,不被当前的时区影响
默认值可以设置时间戳CURRENT_TIMESTAMP
根据当前时间戳更新可以在更新当前记录的其他字段时更新DateTime字段

TimeStamp

timestamp所能存储的时间范围为:‘1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’。
被当前的时区所影响。
其他与DateTime一致。

Javascript

前端接收到后端从数据库查询出的日期时,如果后端没有对数据进行处理,前端接收到的为一个13位的时间戳,可以通过以下方法转换

1

	console.log("转换前:" + time);
    /* 定义Date变量 */
    let datetime = new Date();

    /* 将要转换的时间赋予datetime */
    datetime.setTime(time);

    let year = datetime.getFullYear();
    let month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
    let date = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
    let hour = datetime.getHours() < 10 ? "0" + datetime.getHours() : datetime.getHours();
    let minute = datetime.getMinutes() < 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
    let second = datetime.getSeconds() < 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();

    console.log("转换后:" + year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second);

结果

转换前:1618307762000
转换后:2021-04-13 17:56:02

2

	console.log("转换前:" + time);
    /* 定义Date变量 */
    let datetime = new Date();

    /* 将要转换的时间赋予datetime */
    datetime.setTime(time);
    datetime.setTime(time);
    console.log(datetime.toLocaleDateString());
    console.log(datetime.toLocaleTimeString());
    console.log(datetime.toLocaleDateString() + datetime.toLocaleTimeString());

结果

转换前:1618307762000
2021/4/13
下午5:56:02
2021/4/13下午5:56:02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值