【问题标题】:SQL Convert 'mm/dd/yy' string to date formatSQL将'mm/dd/yy'字符串转换为日期格式
【发布时间】:2019-07-06 12:03:03
【问题描述】:

我有一个名为 templog 的表,我有一个名为“tdate”的日期列,它以“mm/dd/yy”格式存储一个字符串。我尝试使用以下语法进行转换,但收到错误消息。

SELECT convert(datetime,tdate,110) from templog

SQL 查询:文档

SELECT convert(datetime,tdate,110) from templog LIMIT 0, 25 MySQL 说:文档

1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的 templog LIMIT 0, 25' 附近的 'tdate,110) 附近使用正确的语法

关于我做错了什么有什么想法吗?

【问题讨论】:

  • SQL 表/结果集的定义是 orderless,因此使用 `LIMIT 0, 25` 来获取“前”25 条记录几乎是没有意义的 不使用ORDER BY column.. 实际上,您在这里问MySQL 给我表中的25 条记录,我不在乎我得到哪些记录...如果查询是SELECT convert(datetime,tdate,110) from templog ORDER BY column LIMIT 0, 25,那么您问MySQL 正确的事情。根据列对表中的记录进行排序,并根据排序给我前 25 条记录。
  • 您使用的语法类似于 SQL Server 的语法。这和 许多 其他的东西在供应商之间是不同的。每当你得到 1064 时,去 MySQL 手册看看正确的语法是什么。在这种情况下,您将使用CONVERT() 函数并意识到它不会转换日期。然后你需要四处翻找,直到找到“日期函数”。

标签: mysql sql date syntax mariadb


【解决方案1】:

对于 MariaDB,您需要 str_to_date():

SELECT str_to_date(tdate, '%m/%d/%y')
FROM templog

【讨论】:

  • 工作就像一个魅力。谢谢
猜你喜欢
  • 1970-01-01
  • 2022-01-25
  • 2012-03-05
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 2016-07-30
  • 1970-01-01
相关资源
最近更新 更多