MySQL 日期和时间操作

标签 mysql string date time

我有一个 215 个字符的字段,第 16 个到第 21 个字符是日期,格式为 030914。

我希望能够将其转换为日期并将其写入 MySQL 格式 yyyy-mm-dd 的相邻字段中。

我尝试了字符串到日期的转换,但只有当日期字符用“c”(即引号)括起来时才会发生这种情况。

由于我有超过 20K 条记录,这似乎不可行。

字符 22 到 25 是格式为 1014 的时间。这需要以时间格式写入另一个相邻字段,即 hh:mm:ss。

对于经验丰富的 MySQL 程序员来说,这只需几分钟。

最佳答案

查询

获取日期 -

SELECT DATE_FORMAT(
  STR_TO_DATE(SUBSTRING(your_column,16,6),"%d%m%y"),
  "%Y-%m-%d")
  FROM your_table;

获取时间-

SELECT DATE_FORMAT(
  STR_TO_DATE(SUBSTRING(your_column,22,4),"%h%i"),
  "%h:%i:%s")
  FROM your_table;

获取两者-

SELECT DATE_FORMAT(
  STR_TO_DATE(SUBSTRING(your_column,16,10),"%d%m%y%h%i"),
  "%Y-%m-%d %h:%i:%s")
  FROM your_table;

这是演示 http://sqlfiddle.com/#!2/ac7e45/10

关于MySQL 日期和时间操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25657513/

相关文章:

python - 查找 Pandas DataFrame 系列的月底

javascript - 将日期从本地时区转换为 UTC,然后再转换为本地

php - 时段预订脚本 - 检查可用性

php - 在 Laravel 中使用 Eloquent ORM 使用 'not regexp' 执行数据库搜索

c - C 中带分隔符的字符串分割函数

python查找字符串中重复的子串

java - 意外的 DecimalFormat 输出 - Java

MySQL:创建一个带有外键的表,该外键引用由外键组成的主键

mysql : how to escape double quote?

php date() 没有收到年、月、日 : NSDate to php