Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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/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
Php SQL声明不正确的datetime值,尽管行是时间戳_Php_Mysql_Sql - Fatal编程技术网

Php SQL声明不正确的datetime值,尽管行是时间戳

Php SQL声明不正确的datetime值,尽管行是时间戳,php,mysql,sql,Php,Mysql,Sql,问题是,列(start)被设置为timestamp 因此,我为insert查询编写了以下代码: $query = "INSERT INTO {$this->table_name} (`user_id`, `name`, `code`, `start`, `city`, `state`, `groups`) VALUES ( :user_id, :name, :code, TIMESTAMP( :start ), :city, :state, :groups)";

问题是,列(start)被设置为timestamp

因此,我为insert查询编写了以下代码:

$query = "INSERT INTO {$this->table_name} (`user_id`, `name`, `code`, `start`, `city`, `state`, `groups`) VALUES ( :user_id, :name, :code, TIMESTAMP( :start ), :city, :state, :groups)";

        $stmt = $this->connection->prepare($query);

        $stmt->bindParam(":user_id", $this->user_id);
        $stmt->bindParam(":name", $this->name);
        $stmt->bindParam(":code", $this->code);
        $stmt->bindParam(":start", $this->start);
        $stmt->bindParam(":city", $this->city);
        $stmt->bindParam(":state", $this->state);
        $stmt->bindParam(":groups", $this->groups);



        if ($stmt->execute()) { ........
除“组”外,所有变量都是字符串“组”是一个JSON

出现以下错误:

“日期时间值不正确:'597492800'”

所以问题是,当列是一个时间戳,而我正在插入时间戳时,为什么它会说不正确的datetime

即使当我试图将时间戳设置为int时,它也没有解决问题

$stmt->bindParam(":start", $this->start, PDO::PARAM_INT);
我正在从后端发送时间戳,并希望保存它。我不需要从某种格式转换为时间戳,因为时间戳已经有了正确的格式

我对sql世界有点陌生,这对我来说是一个惊喜。如果你能帮助我,我会非常高兴,因为我已经花了一整天的时间来制作这个相对简单的插件

(Mysql版本:8)

非常感谢

采用
date
datetime
表达式,并且
597492800
不是这样的值。类似于
'2020-08-12'
的东西将是

错误似乎很明显

不清楚的是你想做什么——因为问题并不能解释这一点。我可能推测您希望将数字转换为日期/时间值。

采用
date
datetime
表达式,而
597492800
不是这样的值。类似于
'2020-08-12'
的东西将是

错误似乎很明显


不清楚的是你想做什么——因为问题并不能解释这一点。我可能推测您希望将数字转换为日期/时间值。

时间戳数据类型用于同时包含日期和时间部分的值。时间戳的范围为“1970-01-01 00:00:01”UTC到“2038-01-19 03:14:07”UTC


来源:

时间戳数据类型用于同时包含日期和时间部分的值。时间戳的范围为“1970-01-01 00:00:01”UTC到“2038-01-19 03:14:07”UTC


来源:

PDO::PARAM_INT
的类型不正确-应该是
PDO::PARAM_STR
。您为
$this->start
提供了什么值?请将列更改为INT字段或大约20个字符的文本字段,否则您需要将日期真正转换为unix时间戳“timestamp”只是用于日期和时间度量的通用英文词。您可能认为它是Unix时间的同义词。
PDO::PARAM_INT
的类型不正确-它应该是
PDO::PARAM_STR
。您为
$this->start
提供了什么值?请将列更改为INT字段或大约20个字符的文本字段,否则您需要将日期真正转换为unix时间戳“timestamp”只是用于日期和时间度量的通用英文词。您可能认为它是Unix时间的同义词。很抱歉,我不太清楚。我只需要按原样保存时间戳(1234213421)。不需要转换,因为我从前端发送时间戳,而不是任何其他时间格式。我可能需要的是来自UNIXTIME()的信息。我只是认为FROM_UNIXTIME()用于DATETIME列,用于从时间戳转换。谢谢对不起,我不清楚。我只需要按原样保存时间戳(1234213421)。不需要转换,因为我从前端发送时间戳,而不是任何其他时间格式。我可能需要的是来自UNIXTIME()的信息。我只是认为FROM_UNIXTIME()用于DATETIME列,用于从时间戳转换。谢谢