MySQL 是不是会自动重新格式化插入到 DATETIME 类型列中的日期?
Posted
技术标签:
【中文标题】MySQL 是不是会自动重新格式化插入到 DATETIME 类型列中的日期?【英文标题】:Does MySQL automatically re-format dates inserted in to a column of type DATETIME?MySQL 是否会自动重新格式化插入到 DATETIME 类型列中的日期? 【发布时间】:2014-09-21 20:00:07 【问题描述】:我理解DATETIME
在mysql中的格式是YYYY-MM-DD HH:MM:SS
。
我正在使用 Bootstrap 日期选择器,它会发布类似 07/30/2014
的值。如何将其更改为 '2014-07-30 00:00:00`?
我不希望用户看到小时等,但它必须在字符串中。 datepicker能输出这样的字符串吗?
SQL
$stmt = $dbh->prepare("INSERT INTO bookings (forename, surname, site, badge, start, end) VALUES (:forename, :surname, :site, :badge, :start, :end)");
...
$stmt->bindParam(':start', $start);
$stmt->bindParam(':end', $end);
【问题讨论】:
不,它没有,您应该知道您正在使用的数据格式:日期选择器等工具、php 等语言甚至 MySQL 函数都可以帮助将日期从一种格式转换为另一种格式, 但只有您可以告诉他们要转换的格式和格式 【参考方案1】:是的,但如果它是一个字符串,你应该使用STR_TO_DATE()
来转换它:
$msql ="insert into table (birthdate)value(STR_TO_DATE('$yourdate','%d/%m/%Y'))";
mysql_query($msql);
我做了什么:
我将字符串 $yourdate
转换为 DateTime 值。
PS:%d/%m/%Y
应该是字符串中日期的格式,而不是服务器示例中的日期格式:
如果你有这样的约会 22/2/2014
应该可以正常工作,但如果你有这样的约会:2/22/2014
你应该给它:'%m/%d/%Y'
【讨论】:
>>你应该给它这个:'%m/$d/%Y' 请修复 $$$ 嗨。谢谢。我应该在INSERT
或bindParam
中这样做吗?
实际上,如果您使用的是 bindparam,则不需要所有这些东西,只需正常给它字符串并执行您的查询
但是$start
和$end
和07/30/2014
一样,不需要转换吗?
我告诉你什么只是给它这样的 bindparam 如果它不起作用尝试然后这样做:在查询中:插入...... STR_TO_DATE(:start,'%d/ %m/%Y'),STR_TO_DATE(:end,'%d/%m/%Y')) 并正常给它参数以上是关于MySQL 是不是会自动重新格式化插入到 DATETIME 类型列中的日期?的主要内容,如果未能解决你的问题,请参考以下文章
mysql中自动插入时间的格式。 我使用mysql 数据库中设置,当有一条数据插入的时候,会自动插入当前时间…
怎么样将java中的date类型插入到mysql的datetime