SET cp.birth_date = (
cast( substr( cp.idcard, 7, 8 ) AS date ))
WHERE
cp.idcard IS NOT NULL
AND length( cp.idcard ) = 18
通过sql语句查询下 看看现在的值show variables like '%date%'
默认的值是:
date_format= %Y-%m-%d
datetime_format=%Y-%m-%d %H:%i:%s
然后在mysql的配置文件my.cnf 或者 my.ini中 加入
[mysqld]
date_format= %Y/%m/%d
datetime_format=%Y/%m/%d %H:%i:%s
最后mysql服务器重启即可。
1、非要用datetime的话就不能用default而要通过trigger来实现2、在插入时value用now()函数、或者自行取运行时间
3、字段类型改变为:
datecreated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
datemodified timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
但是其实不可行,因为一个表只能有一个CURRENT_TIMESTAMP,但你有三个字段。
所以当有多个时间可能还是得结合方式2与方式3来综合处理。当然全都用方式2也就不会提出这种问题了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)