【问题标题】:MySQL - Convert INT to DATE format.MySQL - 将 INT 转换为 DATE 格式。
【发布时间】:2014-06-05 09:23:33
【问题描述】:

如何在 php 中将 INT 转换为日期,然后在 mysql 表中找到这个日期?

假设我想转换

$month = (int)$_GET['month'];
$month = 42014 ;//This means 04th month in 2014 year
$month = 04-2014; // I want this

然后在 mysql 表中找到它

$query=mysql_query("SELECT id FROM matches WHERE date=$month");// This need to select
                                                               // all data that is
                                                               // created in 04th month
                                                               // of 2014 year .



echo "Thanks :)";

【问题讨论】:

  • var_dump($_GET['month']); 是什么?
  • string(6) "042014" // 但也会出现一些其他错误
  • 对于42014 日期值,您可以使用WHERE DATE_FORMAT(date,'%m%Y')='$month'

标签: php mysql date int


【解决方案1】:

不要像你一样传递$month参数。

发送并传递$month$year 并在之后处理它们:

$month = (int)$_GET['month'];
$year = (int)$_GET['year'];
if($month < 10) { // add this check for months lesser then october (they containt 1 digit, which is wrong for t-sql)
    $month = "0".$month;
}
$query=mysql_query("SELECT id FROM matches WHERE DATE_FORMAT(datefield, '%m-%Y') = '$month-$year'");

source

如果您不能在不同的变量中同时发送月份和年份,请执行此操作,例如 M Khalid Junaid 建议:

$query=mysql_query("SELECT id FROM matches WHERE DATE_FORMAT(datefield,'%m%Y')='$month'");

【讨论】:

  • 不客气。当然,您可以使用 M Khalid Junaid 方法,但我认为最好同时发送月份和年份。选择更适合您的。
  • 我只是分别发送两者,但它不适用于此查询。这就是我的做法:选择日期、主场、客场、挑选、赌注、奇数、rezultat、moguci_dobitak、用户、analiza FROM 匹配 WHERE u_id='$id11' AND STR_TO_DATE(date, '%m-%Y') = ' $month'-'$year' ORDER BY date DESC ... 但它不起作用,当我删除 "AND STR_TO_DATE(date, '%m-%Y') = '$month'-'$year'" 它的工作但没有选择正确的日期范围..有什么帮助吗?
  • @MHB sqlfiddle.com 在此处创建您的 mysql 方案并给我一个链接。或者只是将您的 sql scehem(用于创建表的 t-sql 查询)添加到您的问题中。
  • 我不知道如何为我的表创建架构(我是新手),但是我在这里上传了匹配 table.sql:speedyshare.com/bVaYM/matches-1.sql .. 如果这有帮助吗?谢谢
  • 检查这个:sqlfiddle.com/#!2/ba0962/1 这是一个例子。答案已更新。希望,我现在帮助了你。
【解决方案2】:

尝试如下使用 DateTime::createFromFormat

$month = $_GET['month'];
$date = DateTime::createFromFormat('mY',$month);
echo $date->format('m-Y');

【讨论】:

    【解决方案3】:

    试试这个

    $input=42014;
    $year = strlen(substr($input,-4));
    $month = substr(0,(strlen($input)-strlen($year)));
    $final = $month."-".$year
    

    【讨论】:

      猜你喜欢
      • 2020-07-18
      • 2020-07-08
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      • 2023-03-26
      • 1970-01-01
      • 2020-08-24
      • 2012-06-17
      相关资源
      最近更新 更多