解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别

解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别,第1张

mysql

中:UNIX_TIMESTAMP(),

UNIX_TIMESTAMP(date)

若无参数调用,则返回一个Unix

timestamp

('1970-01-01

00:00:00'

GMT

之后的秒数)

作为无符号整数。若用date

来调用UNIX_TIMESTAMP(),它会将参数值以'1970-01-01

00:00:00'

GMT后的秒数的形式返回。date

可以是一个DATE

字符串、一个

DATETIME字符串、一个

TIMESTAMP或一个当地时间的YYMMDD

或YYYMMDD格式的数字。

mysql>

SELECT

UNIX_TIMESTAMP()

->

882226357

mysql>

SELECT

UNIX_TIMESTAMP('1997-10-04

22:23:00')

->

875996580

UNIX_TIMESTAMP被用在

TIMESTAMP列时,

函数直接返回内部时戳值,

而不进行任何隐含的

“string-to-Unix-timestamp”转化。假如你向UNIX_TIMESTAMP()传递一个溢出日期,它会返回

0,但请注意只有基本范围检查会被履行

(年份从1970

2037,

月份从01到12,日期从

01

到31)。

这里我们可以使用

FROM_UNIXTIME(unix_timestamp),

FROM_UNIXTIME(unix_timestamp,format)来格式化一个UNIX_TIMESTAMP()时间戳,它将返回'YYYY-MM-DD

HH:MM:SS'或YYYYMMDDHHMMSS

格式值的unix_timestamp参数表示,具体格式取决于该函数是否用在字符串中或是数字语境中。

若format

已经给出,则结果的格式是根据format

字符串而定。

format

可以包含同DATE_FORMAT()

函数输入项列表中相同的说明符。

mysql>

SELECT

FROM_UNIXTIME(875996580)

->

'1997-10-04

22:23:00'

mysql>

SELECT

FROM_UNIXTIME(875996580)

+

0

->

19971004222300

mysql>

SELECT

FROM_UNIXTIME(UNIX_TIMESTAMP(),

->

'%Y

%D

%M

%h:%i:%s

%x')

->

'2003

6th

August

06:22:58

2003'

php中:time()

time

--

返回当前的

Unix

时间戳

返回自从

Unix

纪元(格林威治时间

1970

1

1

00:00:00)到当前时间的秒数。

从字面上理解他们是一样的,都是返回

自从

Unix

纪元到当前时间的秒数。

笔者在同一台服务器上做了一个测试,发现两者返回的结果是一样的

在mysql中用

FROM_UNIXTIME(

1156219870

,'%y-%m-%d'

)

和php中用date(

"y-m-d",1156219870

)结果也是一样相同的!唯一不肯确定的是那一个反应更加快速。不过我还是倾向与用php中的time()函数!

select curDate()#获取当前日期select curTime()#获取当前时间select now()#获取当前日期+时间

列举1个天数加减的例子,其他的看英文意思就可以理解了

select date_add(now(), interval 1 day) #当前日期天数+1

select date_add(now(), interval -1 day) #当前日期天数-1

select date_add(now(), interval 1 hour)

select date_add(now(), interval 1 minute)

select date_add(now(), interval 1 second)

select date_add(now(), interval 1 microsecond)

select date_add(now(), interval 1 week)

select date_add(now(), interval 1 month)

select date_add(now(), interval 1 quarter)

select date_add(now(), interval 1 year)

mysql 中把时间戳转换成普通时间,使用FROM_UNIXTIME函数

一、FROM_UNIXTIME函数简介

1、函数作用:将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示。

2、语法:FROM_UNIXTIME(unix_timestamp,format)

返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符。

根据format字符串格式化date值。

下列修饰符可以被用在format字符串中:

3、例子:

SELECT FROM_UNIXTIME(1500109248, '%Y-%m-%d %H:%i:%S')

返回:2017-07-15 17:00:48


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6099462.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存