在MySQL中使用UNIX_TIMESAMTP(NOW())转换成UNIX时间戳以后,需不需要再加28800才等于现在的时间,还是转换之后,不需要加28800就等于现在的时间。
我看明白你问的问题了,问题不是你加不加 28800,
1.无参数调用:`UNIX_TIMESTAMP()`
返回值:**自'1970-01-01 00:00:00'的到当前时间的秒数差**
例子:SELECT UNIX_TIMESTAMP() => 1339123415
2.有参数调用:UNIX_TIMESTAMP(date)
其中date可以是一个DATE字符串,一个DATETIME字符串,一个TIMESTAMP或者一个当地时间的YYMMDD或YYYMMDD格式的数字
返回值:自'1970-01-01 00:00:00'与指定时间的秒数差
根据 我上面说的1和2点可以知道,如果是 UNIX_TIMESAMTP(NOW()) 这个的话,那么有参数和无参数都一样的,
返回值是一个DATETIME字符串格式,且这个字符串的值是 当前时间点到'1970-01-01 00:00:00'差的秒数,
那么就可以确定 SELECT unix_timestamp(now()) 就是当前时间!不需要加28800
在MySQL中使用UNIX_TIMESTAMP(NOW())转换成UNIX时间戳后,不需要再加28800,转换之后的时间戳已经是当前时间的UNIX时间戳了。
UNIX_TIMESTAMP()函数将当前时间转换成UNIX时间戳,这个时间戳是从1970年1月1日00:00:00UTC开始的秒数。MySQL中的UNIX_TIMESTAMP()函数默认使用的是UTC时间,所以它返回的时间戳就是UTC时间戳。
如果想要得到东八区的时间戳需要加上28800秒。