mysql时间戳格式的类型_mysql时间戳格式是什么类型
2017-03-24 回答
1、将时间转换为时间戳
[sql] view plaincopyprint?
select unix_timestamp('2009-10-26 10-06-07')
如果参数为空,则处理为当前时间
2、将时间戳转换为时间
[sql] view plaincopyprint?
select from_unixtime(1256540102)
有些应⽤⽣成的时间戳是⽐这个多出三位,是毫秒表⽰,如果要转换,需要先将最后三位去掉,否则返回null
unix_timestamp(date)
如果没有参数调⽤,返回⼀个unix时间戳记(从'1970-01-01 00:00:00'gmt开始的秒数)。如果unix_timestamp()⽤⼀个date参数被调⽤,它返回从'1970-01-01 00:00:00' gmt开始的秒数值。date可以是⼀个date字符串、⼀个datetime字符串、⼀个timestamp或以yymmdd或yyyymmdd格式的 本地时间的⼀个数字。
[sql] view plaincopyprint?
mysql> select unix_timestamp();
-> 882226357
mysql> select unix_timestamp('1997-10-04 22:23:00');
-> 875996580
当unix_timestamp被⽤于⼀个timestamp列,函数将直接接受值,没有隐含的“string-to-unix-timestamp”变换。
from_unixtime(unix_timestamp)
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回unix_timestamp参数所表⽰的值,取决于函数是在⼀个字符串还是或数字上下⽂中被使⽤。
[sql] view plaincopyprint?
mysql> select from_unixtime(875996580);
-> '1997-10-04 22:23:00'
mysql> select from_unixtime(875996580) + 0;
-> 19971004222300
from_unixtime(unix_timestamp,format)
返回表⽰ unix 时间标记的⼀个字符串,根据format字符串格式化。format可以包含与date_format()函数列出的条⽬同样的修饰符。
[sql] view plaincopyprint?
mysql> select from_unixtime(unix_timestamp(),
'%y %d %m %h:%i:%s %x');
-> '1997 23rd december 03:43:30 x'
通过 unix_timestamp 函数把 mysql 数据库中的 date 类型数据转换成 unix timestamp 形式的⼀个整形数字:
unix时间戳转换日期格式[sql] view plaincopyprint?
select unix_timestamp('2006-02-28') testdate;
[sql] view plaincopyprint?
按理说得到的时间戳应该可以直接拿来给 php 的 date() 等函数使⽤。但奇怪的是:
echo date("y-m-d",$testdate);
显⽰出来的⽇期跟数据库实际的⽇期相⽐却少了⼀天,百思不得其解。反复查看 mysql 关于 unix_timestamp 函数的说明,终于发现问题所在:“the server interprets date as a value in the current time zone and converts it to an internal value in utc.” 原来 mysql 的 unix_timestamp 函数得到
的时间戳是 utc 时间,⽽不是服务器设定的特定 time zone 的时间。经过这样⼀转化,时间戳就凭空少了8个⼩时(对于咱这⾥来说),⽽ php 中的 timestamp 则计算的都是系统设定时区的当地时间。因此 2006-02-28 这个⽇期被减去了8个⼩时,⾃然变成了2006-02-27。
[sql] view plaincopyprint?
解决⽅法:把这⼋个⼩时加回去(unix_timestamp('2006-02-28' + interval 8 hour));或者弃⽤ unix_timestamp 函数, 直接得到mysql date 字符串之后通过 strtotime() 函数来把字符串转化成真正的本地时间戳。
出下个⽉⽣⽇的动物也是容易的。假定当前⽉是4⽉,那么⽉值是4,你可以在5⽉出⽣的动物 (5⽉),⽅法是:
[sql] view plaincopyprint?
mysql> select name, birth from pet where month(birth) = 5;
.................
$conn=mysql_connect("localhost","root","1234")or die("连接数据库失败");
$conndb=mysql_select_db("test",$conn)or die("连接表失败");
$query="select * from ttable";
$result = mysql_query($query,$conn);
while($row = mysql_fetch_array($result)){
$rows[]=$row;
}
$random =rand(0,count($rows));
print_r($rows[$random]);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。