php中如何将string类型转换为date类型插入到数据库中的date类型字段中,incorrect date value啥意思?

RT,谢谢
mysql,在表单的文本框输日期,插入到数据库时显示incorrect date value

1、首先介绍一下将String类型转为Date类型的方法。需要导入java.text.SimpleDateFormat类。下面举一个例子,比如有一个字符串 “2018-08-24“,想要转为Date类型,代码如图所示。

2、下面我们验证一下。是否转化成功,打印一下转化后的时间类型的毫秒数,如果可以打印出结果,说明转化成功,代码如图所示。

3、通过上面的代码可以看出,String类型已经成功转换为Date类型了,注意一点,使用SimpleDateFormat需要捕获ParseException异常。如图所示。

4、以将当前时间转化为字符串为例,获取当前时间可以使用Date nowDate = new Date(),如图所示。

5、时间类型转化为String类型,可以使用SimpleDateFormat的format方法,非常的简单,下面我们看一下代码并打印一下转化后的时间字符串,如图所示。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-27
mysql 的时期格式可以直接插入字符串,
不过要符合这种格式 2000-01-01 00:00:00
把你的字符串弄成这种样子可以直接存进去了
INSERT INTO `table_name` (`date`) VALUES ('2000-01-01 00:00:00');

"incorrect date value": 不正确的日期值.

有时间字符串输入格式是
2000-1-1
可以按以下方式处理
$strDate = '2000-1-1';
$arr = explode('-',$strDate);
// 按 "-" 分隔成数组,也可以是其它的分隔符
$time = mktime(0,0,0,$arr[1],$arr[2],$arr[0]);
// 根据数组中的三个数据生成UNIX时间戳mktime(时,分,秒,月,日,年)
$fmtDate = date('Y-m-d H:i:s', $time);
// 按Y-m-d H:i:s(年-月-日 时:分:秒)格式化

经过以上4行代码;
可以把字符串 $strDate (2000-1-1)
转换成 $fmtDate (2000-01-01 00:00:00)这种格式.
够详细了吧?本回答被提问者采纳
第2个回答  2009-03-18
不知道你用的什么类型的数据库,我用过的真正意义上的数据库,都有自动类型转换的功能,就是说都支持下面这样的SQL语句:
INSERT INTO table (dateFile) VALUES ('2009-3-19')

INFORMIX支持、MYSQL也支持,不过好像FOXPRO和ACCESS不支持,我对微软的东西不熟悉。

如果你是使用的MYSQL数据库,完全可以使用上面的类似语句,利用数据库的自动类型转换实现。注意日期数据有引号,例如:
$regdate='2009-3-19';
$sql="INSERT INTO table(regdate) VALUES ('$regdate')";
第3个回答  2009-03-18
手动通过转换函数转换

INSERT INTO table (dateFile) VALUES (convert(varchar(10),cast('2009-3-9' as datetime),20) as t)

或者直接在PHP.INI里面把
mssql.datetimeconvert 设为OFF