我想在数据库中仅将类型date_created
保存为currenttimestamp
我从select
的HTML中获取年份的值。
得到值后,我会将其转移到控制器中
这是我的代码
$registered_year = sanitize($this->input->post('registered_year'));
$registered_year2 =". $registered_year .-00-00 00:00:00";
$app_type = 1;
$ref_no = generate_reference_number();
$this->Model->dealer_renew_save($account_id,$req_id,$ref_no,$app_type,$registered_year2);
$data = [
'success'=>1,
'message'=> 'Application Successfully Renewed.'
];
generate_json($data);
例如,我选择了2018
,然后希望它保存2018-00-00 00:00:00
它保存0000-00-00 00:00:00
问题出在哪里?
答案 0 :(得分:1)
问题是您的约会日期是
$registered_year2 =". $registered_year .-00-00 00:00:00";
看看是否$registered_year=2019
上有. 2019 .-00-00 00:00:00
并带有点。您的混合级联与插值。而且MySQL日期时间无法将其识别为有效日期。
例如,我选择了2018,然后我想将其保存为2018-00-00 00:00:00
请确保2018-00-00 00:00:00
不是. 2019 .-00-00 00:00:00
这是一个简单的错字。
更多
2018-00-00 00:00:00
不是有效日期。这样就行不通了。但是让我们看一下:
只想在类型为currenttimestamp的数据库date_created中保存年份
Datetime不是时间戳记。而且,如果您需要日期时间字段中的年份,则可以在查询的选择位置和查询位置使用YEAR(datetime_field)
。
如果需要时间戳,可以将时间戳转换为DateTime
YEAR(FROM_UNIXTIME(timestamp_field))
因此,即使我更喜欢在PHP中执行此操作,但如果保存当前日期时间(NOW()),因为DB具有与PHP分开的自己的时区设置。然后,当您需要年份时,您就可以这样做。
干杯。
答案 1 :(得分:0)
有两件事需要解决。根据ArtisticPhoenix答案排名第一
$registered_year2 = $registered_year . "-00-00 00:00:00";
确保日期为2018-00-00 00:00:00
另一件事是将您的字段类型从timestamp
更改为datetime