MYSQL,datetime类型长度填8位。
日期型(DATETIME)数据是表示日期数据,用字母D表示。日期的默认格式是{mm/dd/yyyy},其中mm表示月分,dd表示日期,yyyy表示年度,固定长度为8位。日期范围为介于 100 到 9999 年的日期或时间数值。
扩展资料:
MYSQL其他数据类型:
1、BINARY:每个字符占一个字节,任何类型的数据都可存储在这种类型的字段中。不需数据转换。数据输入二进制字段的方式决定了它的输出方式。
2、BIT:1 个字节0 和 1 ,以及只包含这两个数值之一的字段。
3、TINYINT:1个字节,介于0到255之间的整型数。
4、MONEY:8个字节,介于–922,337,203,685,477.5808到922,337,203,685,477.5807之间的符号整数。
5、UNIQUEIDENTIFIER:128个位,用于远程过程调用的唯一识别数字。
6、REAL:4个字节单精度浮点数,负数范围是从–3.402823E38到–1.401298E-45,正数从1.401298E-45到3.402823E38,和0。
7、SMALLINT:2个字节,介于–32,768到32,767的短整型数。
8、INTEGER:4个字节,介于–2,147,483,648到2,147,483,647的长整型数。
9、DECIMAL:17个字节,容纳从1028-1到-1028-1的值的精确的数字数据类型。你可以定义精度(1-28)和符号(0-定义精度)。缺省精度和符号分别是18和0。
10、TEXT每一字符两字节,从零到最大2.14千兆字节。
11、IMAGE视实际需要而定,从零到最大2.14千兆字节。用于OLE对象。
12、CHARACTER每一字符两字节,长度从0到255个字符。
将Excel文件中的数据保存到mysql中时,发现日期变成了数字。
当excel中的日期以数字显示就会变成类似44721.81这样的数字,这是从1900年开始的天数。
而UNIX时间戳的 0 按照 ISO 8601 规范为 :1970-01-01T00:00:00Z.。也就是从1970开始。
那当我们需要在其他地方处理excel这种时间时就只需要加上70年就行了。接下来的问题就是如何知道这70年的秒数或毫秒数,可以在excel输入1970/1/1然后转换成数字得到25569,这是天数,秒则为25569*24*60*60=2209161600。毫秒的话再乘1000。精度取到秒和毫秒按实际情况定。
在excel中有个日期2022/6/9 19:31:57.850,当其为数字格式时为44721.813864,就叫他Excel时间。
如果需要在java中将其转化为日期,Date date = new Date(new Long(时间戳)这里需要毫秒精度的时间戳。先将Excel时间*一天的毫秒数(24*60*60*1000)-70年(2209161600*1000)-8小时时差(8*60*60*1000)=1654774317850。代入上方得到2022/6/9 19:31:57.850,转换正确。
如果需要在mysql中将其转化为日期,FROM_UNIXTIME(时间戳,'%Y-%m-%d %H:%i:%S')这里只需要秒精度的时间戳。先将Excel时间*一天的秒数(24*60*60)-70年(2209161600)-8小时时差(8*60*60)=1654774317。代入上方得到2022/6/9 19:31:57,转换正确。
当excel中的日期到mysql中变成数字了,只需要FROM_UNIXTIME(Excel时间*86400-2209190400,'%Y-%m-%d %H:%i:%s')就可以转化成正常时间了
len精度6位小数。MySQL最多支持6位小数秒的精度,前三位标识毫秒,后三位标识微秒。以datetime为例,一般情况下时间格式为YYYY-MM-DD HH:MM:SS,为了让我们的datetime类型支持小数秒。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)