【问题标题】:Convert integer to date in mysql ,php在mysql,php中将整数转换为日期
【发布时间】:2017-06-27 05:28:36
【问题描述】:

我有 2 列一个有月份和另一个年份,我想获取所有大于那个月份和年份的记录

我不能使用日期函数,因为这些列是整数类型,它给出的结果不正确

我怎样才能得到大于那个月和那个年的记录

例如,我如何获取 2017 年 2 月之后发生的事件

【问题讨论】:

  • 你之前尝试过什么?
  • 如果你发布你的代码会更好
  • @Harsh Barach TRIED select *, STR_TO_DATE(CONCAT('joining_month','joining_year'),'%m,%Y') AS entry_date from event WHERE entry_date >'2-2016' But entry_date为空

标签: php mysql


【解决方案1】:
SELECT * FROM events WHERE CONCAT(year,month) >= 201702

或没有 CONCAT

SELECT * FROM events WHERE( month > 2 AND year =2017) OR (year > 2017) 

【讨论】:

  • 如果数据库记录中的日期是例如 2018 年 1 月 01 日呢?
【解决方案2】:

WHERE CONCAT(year, month) > 201702

可能你里面也有一些 php 代码:

$date = strtotime('2018-01-01 01:01:01');
$sql =  'SELECT * FROM YOUR_TABLE 
          WHERE CONCAT(year, month) > ' . date('Ym', $date);

【讨论】:

  • 如果日期是 2018 年 1 月呢?
  • 您没有正确理解 - 如果我想要日期大于 02/2017 的所有内容,但在数据库中记录的是 2018 年 01 月。您的代码不会选择它。 .
【解决方案3】:

这种方法怎么样:

SELECT * FROM table WHERE CONCAT(year, month) > 201702

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2021-08-17
    • 2018-10-16
    相关资源
    最近更新 更多