以日期时间格式插入当前日期mySQL

问题描述:

我在将数据正确插入数据库时​​遇到问题。以日期时间格式插入当前日期mySQL

$date = date('m/d/Y h:i:s', time()); 

我用这个格式,并且,它呼应了正确的,但是,当我插入

mysql_query("INSERT INTO table 
(dateposted) 
VALUES ('$date')"); 

它似乎并不顺利进行,并且,时间仍然是00:00: 00 如果你能找到解决方案,那就太好了,谢谢。

+0

什么类型是 “dateposted” ? – 2012-03-02 22:08:20

+1

Dateposted是日期时间格式。 – CCates 2012-03-02 22:09:06

如果你正在寻找存储当前时间只是使用MySQL的函数。

mysql_query("INSERT INTO `table` (`dateposted`) VALUES (now())"); 

如果需要使用PHP来做到这一点,格式它Y-m-d H:i:s所以尽量

$date = date('Y-m-d H:i:s'); 
mysql_query("INSERT INTO `table` (`dateposted`) VALUES ('$date')"); 
+16

但它会使用MySQL服务器区域设置/时区。如果U在不同的服务器上有Apache/PHP和MySQL,并且其中一个中的时区设置不正确,那么您将拥有不同的值。 – 2013-11-24 17:57:59

+2

@Jeff_Alieffson是对的。使用'UTC_TIMESTAMP()'(https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_utc-timestamp)是优选的,而不是'NOW()' – Ejaz 2016-03-31 17:53:57

datetime” 预计的日期将被格式化是这样的:YYYY-MM-DD HH:MM:SS

所以格式化当你插入你的约会像。

+0

所以我会做日期( “YYYY/MM/DD HH:MM:SS”,时间());? – CCates 2012-03-02 22:11:39

+0

不是吗?使用破折号( - )不能斜杠(/)。 – 2012-03-02 22:12:31

+0

好吧,非常感谢。 – CCates 2012-03-02 22:34:17

试试这个

$date = date('Y-m-d H:i:s'); 

NOW()用于插入在MySQL表中的当前日期和时间。数据类型为DATETIME, DATE, TIME & TIMESTAMP的所有字段都适用于此功能。

YYYY-MM-DD HH:MM:SS

示范:

下面的代码显示的NOW()

INSERT INTO auto_ins 
(MySQL_Function, DateTime, Date, Time, Year, TimeStamp) 
VALUES 
(“NOW()”, NOW(), NOW(), NOW(), NOW(), NOW()); 

的使用情况,您可以使用CURRENT_TIMESTAMP,MySQL的功能

type列名为dateposted的列为DATETIME并运行以下查询:

INSERT INTO table (`dateposted`) VALUES (CURRENT_TIMESTAMP) 

 <?php $date= date("Y-m-d"); 
$time=date("H:m"); 
$datetime=$date."T".$time; 
mysql_query(INSERT INTO table (`dateposted`) VALUES ($datetime)); 
?> 

<form action="form.php" method="get"> 
<input type="datetime-local" name="date" value="<?php echo $datetime; ?>"> 
<input type="submit" name="submit" value="submit"> 

+1

欢迎堆栈溢出!好的答案*解释*以及提供代码。考虑更新您的答案,以包含有关此代码如何工作以及为什么这是最佳选项的解释。 – Ajean 2015-09-25 00:59:11

我相信,你需要改变你的代码有点像你的数据库归档类型旁边如下。

mysql_query("INSERT INTO table (`dateposted`) VALUES ($datetime)"); 

希望,将完美工作。

如果你从PHP传递日期,你可以使用任何格式使用STR_TO_DATE() mysql函数。 让conseder您通过HTML表单

$Tdate = "'".$_POST["Tdate"]."'" ; // 10/04/2016 
$Tdate = "STR_TO_DATE(".$Tdate.", '%d/%m/%Y')" ; 
mysql_query("INSERT INTO `table` (`dateposted`) VALUES ('$Tdate')"); 

插入日期的dateposted应该是mysql的date类型。或者mysql将在某些情况下添加00:00:00
您最好将日期和时间一起插入到数据库中,以便您可以使用小时和秒进行计算。 ()。

$Tdate=date('Y/m/d H:i:s') ; // this to get current date as text . 
$Tdate = "STR_TO_DATE(".$Tdate.", '%d/%m/%Y %H:%i:%s')" ; 

试试这个

$('#datepicker2').datepicker('setDate', new Date('<?=$value->fecha_final?>')); 

,最好的办法,使其更容易和高效是这样的:

CREATE TABLE table_name (
field1, 
.. 
.. 
time_updated timestamp default current_timestamp 
) 

现在,当您插入一行到表格中,你可以跳过这一领域(time_updated)因为它会与当前时间为默认值

你的时区只需使用填写:

date_default_timezone_set('Asia/Kolkata');  
$date=date("Y/m/d h:i:sa"); 

使用本

$date = date('m/d/Y h:i:s', time());

,然后在MYSQL 做

type=varchar

然后日期和时间将被成功地插入

+0

您的第一个功能与问题中使用的相同。而这个答案的其余部分不保证重新开放一个5岁的问题。请解释您为什么认为您的解决方案比5年前发布的解决方案更好。 – 2017-10-03 05:37:20

+0

因为老问题不是数据类型 – 2017-10-03 05:51:40

+0

解释选择DATETIME后此功能店0000000所以..... – 2017-10-03 05:53:17