`
sibyl_pisces
  • 浏览: 145956 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

mysql 时间戳

 
阅读更多

 

1、将时间转换为时间戳
select unix_timestamp('2009-10-26 10-06-07')
如果参数为空,则处理为当前时间
2、将时间戳转换为时间
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格式的 本地时间的一个数字。 
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参数所表示的值,取决于函数是在一个字符串还是或数字上下文中被使用。 
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()函数列出的条目同样的修饰符。 
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 形式的一个整形数字: 

select UNIX_TIMESTAMP('2006-02-28') testdate; 

按理说得到的时间戳应该可以直接拿来给 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。 

解决方法:把这八个小时加回去(UNIX_TIMESTAMP('2006-02-28' + INTERVAL 8 HOUR));或者弃用 UNIX_TIMESTAMP 函数, 直接得到 MySQL date 字符串之后通过 strtotime() 函数来把字符串转化成真正的本地时间戳。

找出下个月生日的动物也是容易的。假定当前月是4月,那么月值是4,你可以找在5月出生的动物 (5月),方法是: 

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]);

 

 

 

来自: http://hi.baidu.com/garrych/blog/item/7c6c06436972a81a9313c684.html

分享到:
评论

相关推荐

    asp用的mysql时间戳转换方法

    ### ASP中MySQL时间戳转换至SQL Server日期格式的方法 在数据迁移或跨数据库操作时,经常需要处理不同数据库之间的日期时间格式差异问题。例如,当我们需要将MySQL中的数据导出到Oracle或SQLServer时,可能会遇到...

    thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结

    本文实例讲述了thinkphp5.1框架实现格式化mysql时间戳为日期的方式。分享给大家供大家参考,具体如下: 方式一 使用mysql函数FROM_UNIXTIME(unix_timestamp,format)直接转换 select FROM_UNIXTIME(o.create_time,'...

    mysql 时间戳的用法

    时间戳字段在MySQL中经常使用到,比如需要记录一行数据创建的时间或修改的时间时,我们通常会使用时间戳即timestamp字段。本篇文章主要介绍timestamp字段的使用方法及相关参数,希望大家读完能对timestamp有更深的...

    解决mysql时间戳datatime存储四舍五入问题.docx

    在MySQL数据库中,时间戳(Timestamp)和日期时间(DateTime)是两种常见的日期和时间数据类型,用于存储和处理时间信息。在您的项目中遇到的问题是关于DateTime类型的字段在存储时出现了四舍五入的问题,这通常是...

    mysql时间戳转成常用可读时间格式的两种方法

    本文将介绍两种将MySQL时间戳转换为可读时间格式的方法。 方法一:使用`FROM_UNIXTIME()`函数 `FROM_UNIXTIME()`是MySQL内置的函数,用于将Unix时间戳转换为日期或时间格式。其基本语法如下: ```sql SELECT FROM_...

    定时备份mysql数据库时间戳命名实例

    ### 定时备份MySQL数据库时间戳命名实例 在IT领域,数据备份是一项至关重要的工作,尤其是在数据库管理中。本文将详细介绍一种通过脚本实现MySQL数据库定时逻辑备份的方法,并结合时间戳进行文件命名,确保每次备份...

    mysql 日期操作 增减天数、时间转换、时间戳.docx

    unix_timestamp() 函数用于将日期和时间转换为 Unix 时间戳,例如: ```sql SELECT unix_timestamp('2008-08-08 00:00:00'); -- 1218182400 ``` 四、UTC 日期和时间函数 MySQL 提供了多种 UTC 日期和时间函数,...

    MySQL中日期和时间戳互相转换的函数和方法

    ① 时间戳转换成日期 代码如下: FROM_UNIXTIME 例如: 数据表中 invest_time 存储的是时间戳,如 1429063399 使用 FROM_UNIXTIME 可以把时间戳转换为日期: 代码如下: select FROM_UNIXTIME(invest_time,’%Y年%m...

    FROM_UNIXTIME 格式化MYSQL时间戳函数

    `FROM_UNIXTIME`是MySQL中的一个非常重要的时间戳转换函数,它允许你将UNIX时间戳转换为人类可读的日期和时间格式。UNIX时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不包括闰秒。在MySQL中,这个函数...

    MySQL 62 道面试题及答案.docx

    UNIX_TIMESTAMP 是从 MySQL 时间戳转换为 Unix 时间戳的命令 FROM_UNIXTIME 是从 Unix 时间戳转换为 MySQL 时间戳的命令。 MySQL 列比较 列对比运算符是什么?在 SELECT 语句的列比较中使用 =,,,<,>=,>,,>>,,AND,...

    MySQL表中添加时间戳的几种方法

    在MySQL数据库中,时间戳(TIMESTAMP)是一个...综上,了解并熟练运用这些MySQL时间戳相关的函数和方法,能够有效地处理与时间有关的数据操作,尤其是在数据同步和增量更新等场景下,时间戳字段的正确使用至关重要。

    详解MySQL日期 字符串 时间戳互转

    平时比较常用的时间、字符串、时间戳之间的互相转换,虽然常用但是几乎每次使用时候都喜欢去搜索一下用法;本文将作为一个笔记,整理一下三者之间...from_unixtime(unix_timestamp, format) 函数,MySQL时间戳格式化函

    最全MySQL面试60题和答案

    UNIX_TIMESTAMP 是从 Mysql 时间戳转换为 Unix 时间戳的命令FROM_UNIXTIME 是从 Unix 时间戳转换为 Mysql 时间戳的命令 列对比运算符 15. 列对比运算符是什么?在 SELECT 语句的列比较中使用=,,,<,> =,>,,>...

    mysql面试题,MySQL面试题及答案 ,MySQL面试题部分,发现网上很多MySQL面试题及答案整理都没有答案

    - 使用`UNIX_TIMESTAMP()`函数将MySQL时间戳转换为Unix时间戳,反之用`FROM_UNIXTIME()`。 4. **MyISAM存储格式** - MyISAM表的存储包括`.frm`(表结构)、`.MYD`(数据文件)和`.MYI`(索引文件)。 5. **非...

Global site tag (gtag.js) - Google Analytics