MYSQL UNIX_TIMESTAMP()详解

mysql教程 unix_timestamp()详解

若无参数调用,则返回一个 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)。

select `start_time` , `end_time` , unix_timestamp( now( ) )
from `fair_exhibition_info`
limit 0 , 30

start_time int开始时间            end_time int结束时间                unix_timestamp( now( ) )
1249314320                                  1251560723                                    1253244650
1251820776                                 1253721578                                    1253244650
1251827113                                  1253900715    

通过 unix_timestamp 函数把 mysql 数据库教程中的 date 类型数据转换成 unix timestamp 形式的一个整形数字:

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

按理说得到的时间戳应该可以直接拿来给 php教程 的 date() 等函数使用。但奇怪的是:

echo date("y-m-d",$testdate);

显示出来的日期跟数据库实际的日期相比却少了一天,

把这八个小时加回去(unix_timestamp('2006-02-28' + interval 8 hour));或者弃用 unix_timestamp 函数, 直接得到 mysql date 字符串之后通过 strtotime() 函数来把字符串转化成真正的本地时间戳。

时间: 2024-10-04 08:09:18

MYSQL UNIX_TIMESTAMP()详解的相关文章

MySQL存储过程详解 mysql 存储过程

mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 一个存储过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的

Java实现调用MySQL存储过程详解_java

前言 存储过程(Stored Procedure)是存储在数据库中经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它. Java调用MySQL的存储过程,需要用JDBC连接,环境eclipse 首先查看MySQL中的数据库的存储过程,接着编写代码调用 mysql> show procedure status; +------+-------------+-----------+----------------+-------------

MySQL MEM_ROOT详解及实例代码_Mysql

MySQL MEM_ROOT详解 这篇文章会详细解说MySQL中使用非常广泛的MEM_ROOT的结构体,同时省去debug部分的信息,仅分析正常情况下,mysql中使用MEM_ROOT来做内存分配的部分. 在具体分析之前我们先例举在该结构体使用过程中用到的一些宏: #define MALLOC_OVERHEAD 8 //分配过程中,需要保留一部分额外的空间 #define ALLOC_MAX_BLOCK_TO_DROP 4096 //后续会继续分析该宏的用途 #define ALLOC_MAX_

JDBC 连接MySQL实例详解_Mysql

JDBC连接MySQL JDBC连接MySQL 加载及注册JDBC驱动程序 Class.forName("com.mysql.jdbc.Driver"); Class.forName("com.mysql.jdbc.Driver").newInstance(); JDBC URL 定义驱动程序与数据源之间的连接 标准语法: <protocol(主要通讯协议)>:<subprotocol(次要通讯协议,即驱动程序名称)>:<data so

mysql count详解及函数实例代码

mysql count详解 count函数是用来统计表中或数组中记录的一个函数,下面我来介绍在mysql中count函数用法. count(*) 它返回检索行的数目, 不论其是否包含 NULL值. SELECT 从一个表中检索,而不检索其它的列,并且没有 WHERE子句时, COUNT(*)被优化到最快的返回速度. 例如: mysql> SELECT COUNT(*) FROM student; COUNT(DISTINCT 字段)这个优化仅适用于 MyISAM表, 原因是这些表类型会储存一个函

MySQL Join详解

mysql|详解 还是先 Create table 吧  create table emp(  id int not null primary key,  name varchar(10)  );   create table emp_dept(  dept_id varchar(4) not null,  emp_id int not null,  emp_name varchar(10),  primary key (dept_id,emp_id));   insert into emp()

mysql 存储过程详解_Mysql

MySQL存储过程  14.1.1 创建存储过程 MySQL中,创建存储过程的基本形式如下: CREATE PROCEDURE sp_name ([proc_parameter[,...]])          [characteristic ...] routine_body 其中,sp_name参数是存储过程的名称:proc_parameter表示存储过程的参数列表: characteristic参数指定存储过程的特性:routine_body参数是SQL代码的内容,可以用BEGIN-END

MySQL日志详解

MySQL日志 主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志: 日志是mysql数据库的重要组成部分.日志文件中记录着mysql数据库运行期间发生的变化:也就是说用来记录mysql数据库的客户端连接状况.SQL语句的执行情况和错误信息等.当数据库遭到意外的损坏时,可以通过日志查看文件出错的原因,并且可以通过日志文件进行数据恢复. 错误日志 在mysql数据库中,错误日志功能是默认开启的.并且,错误日志无法被禁止.默认情况下,错误日志存储在mysql数据库的数据文件中.错误日志文

mysql命令详解

首先创建一个简单的user表CREATE TABLE `user` (`id`  int NOT NULL AUTO_INCREMENT ,`name`  varchar(255) NULL ,`sex`  varchar(255) NULL ,`age`  int NULL ,`address`  varchar(255) NULL ,PRIMARY KEY (`id`));然后插入数据insert into `user`(`name`,`sex`,`age`,`address`) value