资讯专栏INFORMATION COLUMN

php 插入时间 0000解决

waltr / 1890人阅读

摘要:可以在指定字段的值的时候使用变量来自动插入系统的当前时间。以后任何时间修改表中的记录时,对应记录的值会自动被更新为当前的系统时间。

今天在做php作业的时候插入时间一直都是0000-0000-0000
后来才发现是插入数据库那里少写了一个美元符号"$" 真是╮(╯_╰)╭

不过也查找了一些相关的信息
Unix时间戳
UNIX 时间戳(timestamp)是 PHP 中关于时间日期一个很重要的概念,它表示从 1970年1月1日 00:00:00 到当前时间的秒数之和。
PHP提供了内置函数 time() 来取得服务器当前时间的时间戳。
也就是说时间戳是个秒数,所以存进数据库的就是要把传过来的字符串转变为秒数
然后再按规定的格式转化,最后存入数据库。

$publishDate = $_POST["txt_publishDate"];               //获取传过来的字符串时间
$publishDate = date("Y-m-d H:i:s",strtotime($publishDate)); //把字符串时间转变为时间戳,再转变为Y-m-d
$sql=mysql_query("insert into bookinfo(title,author,ISBN,publishDate,sort)values("$title","$author","$isbn","$publishDate","$sort")");

附:

int
1. 占用4个字节
2. 建立索引之后,查询速度快
3. 条件范围搜索可以使用使用between
4. 不能使用mysql提供的时间函数
结论:适合需要进行大量时间范围查询的数据表

datetime
1. 占用8个字节
2. 允许为空值,可以自定义值,系统不会自动修改其值。
3. 实际格式储存(Just stores what you have stored and retrieves the same thing which you have stored.)
4. 与时区无关(It has nothing to deal with the TIMEZONE and Conversion.)
5. 不可以设定默认值,所以在不允许为空值的情况下,必须手动指定datetime字段的值才可以成功插入数据。
6. 可以在指定datetime字段的值的时候使用now()变量来自动插入系统的当前时间。
结论:datetime类型适合用来记录数据的原始的创建时间,因为无论你怎么更改记录中其他字段的值,datetime字段的值都不会改变,除非你手动更改它。

timestamp
1. 占用4个字节
2. 允许为空值,但是不可以自定义值,所以为空值时没有任何意义。
3. TIMESTAMP值不能早于1970或晚于2037。这说明一个日期,例如"1968-01-01",虽然对于DATETIME或DATE值是有效的,但对于TIMESTAMP值却无效,如果分配给这样一个对象将被转换为0。
4.值以UTC格式保存( it stores the number of milliseconds)
5.时区转化 ,存储时对当前的时区进行转换,检索时再转换回当前的时区。
6. 默认值为CURRENT_TIMESTAMP(),其实也就是当前的系统时间。
7. 数据库会自动修改其值,所以在插入记录时不需要指定timestamp字段的名称和timestamp字段的值,你只需要在设计表的时候添加一个timestamp字段即可,插入后该字段的值会自动变为当前系统时间。
8. 以后任何时间修改表中的记录时,对应记录的timestamp值会自动被更新为当前的系统时间。
结论:timestamp类型适合用来记录数据的最后修改时间,因为只要你更改了记录中其他字段的值,timestamp字段的值都会被自动更新。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31855.html

相关文章

  • php 插入时间 0000解决

    摘要:可以在指定字段的值的时候使用变量来自动插入系统的当前时间。以后任何时间修改表中的记录时,对应记录的值会自动被更新为当前的系统时间。 今天在做php作业的时候插入时间一直都是0000-0000-0000 后来才发现是插入数据库那里少写了一个美元符号$ 真是╮(╯_╰)╭ 不过也查找了一些相关的信息 Unix时间戳 UNIX 时间戳(timestamp)是 PHP 中关于时间日期一个很重...

    novo 评论0 收藏0
  • MySQL时间类型和模式

    摘要:解决方案为调整时间为合法范围调整严格模式,允许非法时间下面我们详细说明相关的内容。时间类型时间类型分为三种用于只包含日期不包含时间的时候,会将格式转换为,合法范围为。 当我在MySQL数据库中尝试插入一条带有时间戳的数据时报错: mysql> insert into alarm_service values (6, 1970-01-01 08:00:00); ERROR 1292 (...

    kidsamong 评论0 收藏0
  • mysql字段时间类型的比较

    摘要:哈哈到年后就别用这个类型了这只是一个简单的区分说明具体时间类型的说明请参考官方文档扫描关注,查看更多文章,提高编程能力 mysql字段的时间类型分为5种:DATE,DATETIME,TIME,TIMESTAMP,YEAR; 下面就分别介绍这几种时间类型的区别 类型 字节大小 范围 格式 零值 用途 DATE 3 1000-01-01/9999-12-32 YYYY-MM-...

    MiracleWong 评论0 收藏0
  • PHP基础之fastcgi协议

    摘要:请求头部基本上是作为键值对传输,例如。他们者直接由将协议转换为协议传输给进行处理。而作为保留位,主要也是为了协议头部能与字节对齐。 前言 闲来无事,决定整理一下最近看的一些东西,于是先写写fastcgi协议,此协议是cgi协议的升级版,其实就是当年cgi太弱,导致动态页面太耗性能,所以开发了例如fastcgi协议等升级版,下面我们就来聊聊这个协议的相关内容。 CGI协议以及Fastc...

    youkede 评论0 收藏0
  • PHP基础之fastcgi协议

    摘要:请求头部基本上是作为键值对传输,例如。他们者直接由将协议转换为协议传输给进行处理。而作为保留位,主要也是为了协议头部能与字节对齐。 前言 闲来无事,决定整理一下最近看的一些东西,于是先写写fastcgi协议,此协议是cgi协议的升级版,其实就是当年cgi太弱,导致动态页面太耗性能,所以开发了例如fastcgi协议等升级版,下面我们就来聊聊这个协议的相关内容。 CGI协议以及Fastc...

    岳光 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<