【问题标题】:How to insert a date in the format dd-mm-yy in MySQL?如何在 MySQL 中以 dd-mm-yy 格式插入日期?
【发布时间】:2018-08-03 11:41:55
【问题描述】:

我必须在 MySQL 中以dd-mm-yy 格式插入日期。

我知道如果我将日期格式更改为yy-mm-dd,它会起作用,但我的客户希望它采用dd-mm-yy 格式,并且MySQL 日期的默认格式是0000-00-00

【问题讨论】:

  • 您可以使用str_to_date将日期字符串转换为MySQL的内部日期格式以便插入。

标签: date datepicker date-format


【解决方案1】:

正如 Honeyboy 在 cmets 中所说,您可以将 SELECT_TO_DATE 函数与格式字符串 "%d-%m-%y" 一起使用。你可以这样测试:

CREATE DATABASE test;
USE TEST;
CREATE TABLE test (date1 date);
INSERT INTO test (date1) VALUES (STR_TO_DATE("03-04-15","%d-%m-%y"));

然后用

SELECT * FROM test;

你获得:

+------------+
| date1      |
+------------+
| 2015-04-03 |
+------------+

如果你使用 PHP,那么你可以编写一个准备好的语句,例如:

$stmt = $conn->prepare("INSERT INTO test (date1) VALUES (STR_TO_DATE(?,'%d-%m-%y'));");
$stmt->bind_param("s", $client_date);
$stmt->execute();

与其他语言的原理相同。

【讨论】:

  • 是的,这没问题,但用户正在以“dd-mm-yy”格式插入日期,
  • 因此您可以从用户提供的字符串和 SELECT_TO_DATE 函数中执行 INSERT。
  • 问题是当用户以dd-mm-yy的形式插入日期时,数据库中的值将是0000-00-00这意味着插入的日期必须是这种形式0000-00-00我很困惑如果我可以从用户那里获取值并在插入之前将其转换为这种'yyyy-mm-dd'形式,有没有办法?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-28
  • 1970-01-01
  • 2020-02-29
  • 2018-09-04
相关资源
最近更新 更多