datetime如何转为bigint
1、用Power Shell或cmd进入mysql,登陆后选择一个数据库,创建表dt_to_bi。创建表的sql语句和表结构如图。
2、接着向表dt_to_bi插入一条数据,插入后,datetime字段的值是当前时间,bigint字段的值为NULL。
3、接着写更新的sql语句,将datetime转为bigint后更新表数据。将datetime转为bigint使用的是mysql的内置函数unix_timestamp()。更新数据后,结果如图。
4、然后再插入一条数据,插入的sql语句和插入后的数据如图。插入后可以计算出,dt亨蚂擤缚字段的差值为3分27秒,bi字段的绿理猸搋差值为207,刚好为(3*60+27),说明unix_timestamp函数将日期转换为bigint,返回值是以秒为单位的。
5、如图使用from_unixtime()函数可以将bigint值转换为日期。
6、最后说一下unix_timestamp()和rom_unixtime()这两个函数是怎么对datetime和bigint进行茌慊瑞谷转换的。先做个测试,在mysql中输入select from_unixtime(0); ,如图可以看到返回值是"1970-01-01 08:00:00"。
7、接着在mysql中输入select unix_timestamp(60); ,如图可以看到返回值是"1970-01-01 08:01:00"。
8、再接着再输入select from_unixtime('1970-01-01 08:01:00'); , 如图可以看到返回值是60。
9、最后测试负值和在"1970-01-08:00:00"之前的值,结果如图。经过上诹鬃蛭镲面的测试,可以看出unix_timestamp()和from_unixtime()在进行转换时是把"1970-01-08:00:00"当作开始的时间。unix_timestamp(datetime)是将参数datetime转换成从"1970-01-08:00:00"起到datetime之间的差值,单位是秒。from_unixtime(bigint)是从"1970-01-08:00:00"开始加上传入的参数值,从而将整型值转换成日期。from_unixtime()传入的参数不允许为负值,如图传入负值返回的是NULL。unix_timestamp()传入的参数不能在"1970-01-08:00:00"之前,在"1970-01-08:00:00"之前的值,返回值为0。