Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
默认情况下,是否可以在MYSQL数据库的列中插入php time()值?_Php_Mysql_Time - Fatal编程技术网

默认情况下,是否可以在MYSQL数据库的列中插入php time()值?

默认情况下,是否可以在MYSQL数据库的列中插入php time()值?,php,mysql,time,Php,Mysql,Time,我的简单问题是。。是否可以在MYSQL数据库的一列中默认插入phptime()值,这样每次我都不需要插入它。我知道MYSQL提供了CURR\u TIMESTAMP。但是它们不是作为整数存储的,这与时间函数不同,时间函数将时间戳作为整数存储 任何帮助都将不胜感激。。。谢谢示例: drop table if exists file_events; create table file_events ( id int unsigned auto_increment not null, file

我的简单问题是。。是否可以在MYSQL数据库的一列中默认插入php
time()
值,这样每次我都不需要插入它。我知道MYSQL提供了
CURR\u TIMESTAMP
。但是它们不是作为整数存储的,这与时间函数不同,时间函数将时间戳作为整数存储

任何帮助都将不胜感激。。。谢谢

示例:

drop table if exists file_events;

create table file_events (
  id int unsigned auto_increment not null,
  file_id int unsigned not null,
  event_time int unsigned not null default UNIX_TIMESTAMP(),    # the field that defaults to "now"
  primary key(id),
  constraint foreign key fk_file_events_to_sam_files (file_id) references files(id) on delete cascade
) ENGINE=InnoDB;
例如:

drop table if exists file_events;

create table file_events (
  id int unsigned auto_increment not null,
  file_id int unsigned not null,
  event_time int unsigned not null default UNIX_TIMESTAMP(),    # the field that defaults to "now"
  primary key(id),
  constraint foreign key fk_file_events_to_sam_files (file_id) references files(id) on delete cascade
) ENGINE=InnoDB;

如果您想在mysql上执行此操作,您可以始终使用触发器[],只需创建一个触发器,将您选择的列设置为当前时间戳

如果您想在mysql上执行此操作,您可以始终使用触发器[]只需创建一个触发器,将您选择的列设置为当前时间戳

您只需使用MySQL时间戳,并根据需要进行转换。这很容易做到

strtotime("put the mysql timestamp here");
将生成与相同的格式(unix时间戳)


您应该坚持使用MySQL时间戳,并根据需要进行转换。这很容易做到

strtotime("put the mysql timestamp here");
将生成与相同的格式(unix时间戳)


与许多其他DBMS不同,MySQL不支持函数作为默认值。唯一的例外是您提到的:日期接受当前时间戳(或其值之一)。在我看来,这是一个可以接受的解决方案,因为您可以轻松地动态转换Unix时间戳:

SELECT foo_id, foo_info
FROM foo
WHERE FROM_UNIXTIME(1294133369)<=foo_date 
选择foo\u id,foo\u info
来自富

其中,与许多其他DBMS不同,MySQL不支持函数作为默认值。唯一的例外是您提到的:日期接受当前时间戳(或其值之一)。在我看来,这是一个可以接受的解决方案,因为您可以轻松地动态转换Unix时间戳:

SELECT foo_id, foo_info
FROM foo
WHERE FROM_UNIXTIME(1294133369)<=foo_date 
选择foo\u id,foo\u info
来自富


其中,从_UNIXTIME(1294133369)开始,当数据库支持“time”格式时,将“time”存储为整数确实是一个坏习惯。如果你以后真的需要它作为一个整数(并且你应该问为什么-可能其他东西坏了),你仍然可以转换它。你实际上指的是PHP从服务器运行的时间,而不是数据库服务器的时钟吗?我有UnixtTimeStamp,我需要运行一个中间查询。。。如果存储的格式是这样的,那么我需要以另一种方式进行查询。无论您使用哪种类型的日期/时间数据类型,中间查询都应该以相同的方式工作。@Salman A-->是的,您已经纠正了。当数据库支持“time”格式时,将“time”存储为整数是一个非常坏的习惯。如果你以后真的需要它作为一个整数(并且你应该问为什么-可能其他东西坏了),你仍然可以转换它。你实际上指的是PHP从服务器运行的时间,而不是数据库服务器的时钟吗?我有UnixtTimeStamp,我需要运行一个中间查询。。。如果存储格式是这样的,那么我需要以另一种方式进行查询,无论您使用的日期/时间数据类型是哪种类型,中间查询都应该以同样的方式工作。@Salman A-->是的,您是正确的
CURRENT\u TIMESTAMP
NOW()
完全相同,因此这不会增加任何内容。@Matthew:you where right,我已经编辑了我的答案,UNIX_TIMESTAMP()返回OP whanted的值。
TIMESTAMP
列只是另一种类型的日期,而不是整数。如果你试图存储
UNIX\u TIMESTAMP()
(这是一个整数)的结果,你所能得到的就是
0000-00-00 00:00:00
当前的时间戳和
NOW()
是完全相同的,所以这不会增加任何内容。@Matthew:你说得对,我已经编辑了我的答案,UNIX\u TIMESTAMP()返回OP whanted的值。
时间戳
列只是另一种类型的日期,而不是整数。如果您试图存储
UNIX\u TIMESTAMP()
(这是一个整数)的结果,那么您只能得到
0000-00-00 00:00:00
。是的,这是真的。。。我有unixtimestamp,我需要运行一个中间查询。。。如果存储格式是这样的,那么我需要以另一种方式进行查询……请注意,PHP的时间和MySQL的时间戳都表示自UNIX时代以来的秒数。看看MySQL。是的,这是真的。。。我有unixtimestamp,我需要运行一个中间查询。。。如果存储格式是这样的,那么我需要以另一种方式进行查询……请注意,PHP的时间和MySQL的时间戳都表示自UNIX时代以来的秒数。请看MySQL。这是给出问题的有效答案。当然,存储一个合适的日期并使用
UNIX\u TIMESTAMP()
进行转换可能更有意义。这是给出问题的有效答案。当然,只存储正确的日期并使用
UNIX\u TIMESTAMP()
进行转换可能更有意义。