我正在尝试构建小型API。我正在使用Laravel。
我有这个表例如:
CREATE TABLE `Incomes` (
.......................................
`comment` VARCHAR(255) NULL DEFAULT NULL,
`dateInsert` TIMESTAMP NULL DEFAULT NULL,
`dateUpdate` TIMESTAMP NULL DEFAULT NULL,
`dateDelete` TIMESTAMP NULL DEFAULT NULL,
PRIMARY KEY (`guid`),
.......................................
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
我正在更新某一行dateUpdate
字段:
update `Incomes` set `dateInsert` = '1432111937' where `guid` = 'lalvlldlv1laslf'
之后我将这些数据排成一行:
我甚至没有时间戳,只有0000-00-00 00:00:00
。
为什么我会这样?
为什么关于PHP的问题?我正在使用Laravel来更新行。
我有这段代码,它生成上面的代码:
$jsonArray = $input->data;
foreach ($jsonArray as $item) {
$item = (object)$item;
$income = Income::find($item->guid);
if($income) {
$income->categoryId = $item->categoryId;
$income->billId = $item->billId;
$income->userId = $item->userId;
$income->amount = $item->amount;
$income->comment = $item->comment;
$income->dateInsert = $item->dateInsert;
$income->dateUpdate = $item->dateUpdate;
$income->dateDelete = $item->dateDelete;
$income->save();
}
}
我将这个json解析为$jsonArray
变量:
{
"data": [
{
"guid": "lalvlldlv1laslf",
"categoryId": "123e1cs",
"billId": "12312",
"userId": "214123",
"amount": 200,
"comment": null,
"dateInsert": 1432111937,
"dateUpdate": null,
"dateDelete": null
}
]
}
为什么我没有在行中获得正常的日期/正常时间戳?
答案 0 :(得分:4)
Timestamp
数据类型支持Y-m-d H-i-s
格式的日期,因此失败,您需要转换为正确的格式。在mysql中,可以使用from_unixtime
mysql> select from_unixtime('1432111937');
+-----------------------------+
| from_unixtime('1432111937') |
+-----------------------------+
| 2015-05-20 14:22:17 |
+-----------------------------+
1 row in set (0.05 sec)
因此更新命令将是
update `Incomes`
set `dateInsert` = from_unixtime('1432111937')
where `guid` = 'lalvlldlv1laslf'