【问题标题】:Convert 01-Jun-2012 varchar to date将 2012 年 6 月 1 日的 varchar 转换为日期
【发布时间】:2020-11-19 06:45:18
【问题描述】:

我有一张表,其中日期(不幸的是)以 varchar 形式输入。例如,我的 varchar 日期为 2012 年 6 月 1 日。如何将其转换为 yyyy-mm-dd 格式?我尝试过使用 alter table、str_to_date 和 convert 都失败了。我在 MySQL 工作-谢谢! singh.rbir 回答了我的问题,谢谢! enter image description here

【问题讨论】:

标签: mysql date


【解决方案1】:

假设它是 SQL Server,正常的转换功能应该可以工作:

SELECT CONVERT(date, '01-Jun-2012');

将导致:

2012-06-01

顺便说一句,在该图像中显示您的生产级数据库和其他表不是一个好主意。如果这是一个现实世界/商业应用程序,虽然由于可用信息有限,安全风险非常低,但仍然不建议公开表名等。

【讨论】:

  • 呃,我希望我知道它所在的服务器的确切类型。我是 SQL 新手,请原谅我的无知。那没有用。
  • 在图片中的那个选择查询中,您提供'productiondate' 作为字符串而不是实际列(没有单引号),您认为这与此有关吗?跨度>
  • 实际上,我相信在将列类型从varchar 更改为date 之前,上述查询将不起作用,因为转换函数将返回日期类型。
  • 很高兴我能帮上忙。如果问题解决了,你能接受我的回答吗? @au80403
  • singh.rbir - 我会的!我想弄清楚这一点!我想我做到了,如果您没有看到应得的信用,请告诉我!
【解决方案2】:

因为它被标记为 mysql,所以它可以工作

SELECT DATE_FORMAT(STR_TO_DATE('01-Jun-2012','%d-%b-%Y'),'%Y-%m-%d');

第二个参数是格式字符串解释here

【讨论】:

  • str_to_date 返回的是什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-25
  • 2015-04-29
  • 2019-02-15
  • 1970-01-01
相关资源
最近更新 更多