【问题标题】:splitting date and inserting individual field in separate column in mysql拆分日期并在mysql的单独列中插入单个字段
【发布时间】:2012-12-12 16:45:57
【问题描述】:

我直接通过 phpmyadmin 创建了一个日期表,我想将日期 (yyyy:mm:dd) 拆分为单独的日、月和年并插入到单独的字段中。任何人都可以帮助我直接在 phpmyadmin 中使用的查询来执行上述工作吗?

【问题讨论】:

  • 我们有 DAY()MONTH()YEAR() 函数……但是请帮自己和项目中的每个人一个忙:只需使用 DATE 列.....
  • 为什么?您可以使用 MySQL YEAR()MONTH()DAY() 访问每个日期元素。在 SQL 中执行此操作也比将其拉出并使用另一种语言解析要快得多...
  • 您想通过查询为年、月、日创建单独的字段?或者您想将您拥有的日期添加到单独的字段中?您可以使用高级语言(php、python、ruby 等)来拆分日期并将其放入 db 表中的单独字段中。但对于前一个,你可以使用 phpmyadmin gui ;)
  • 一定要把它全部放在一个列中;这不仅会减少您必须处理的列数,而且您可以利用 SQL 排序和其他涉及查询中日期的操作。

标签: mysql


【解决方案1】:

试试:

UPDATE `table` SET `year` = YEAR(`date`), `month` = DATE_FORMAT(`date`, '%m'), `day` = DATE_FORMAT(`date`, '%d')

我使用了DATE_FORMAT() 而不是MONTH()DAY(),因为后两者删除了前导零。

【讨论】:

  • 对不起,查询成功但没有看到结果.....我的意思是那天。月份和年份字段均为 0
  • 只是为了确定;您正在使用反引号(或什么都不用)来转义 date 字段名称,而不是单引号?
  • 我使用单引号。如果将日期字段声明为 int 而不是 datetime 会有问题
  • 您不要使用单引号来转义字段名称。你使用反引号。如果date 字段已声明为int,那么数据如何存储为YYYY:MM:DD,正如您提到的问题?
猜你喜欢
  • 2021-09-14
  • 2017-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多