【问题标题】:transform date into different format [duplicate]将日期转换为不同的格式[重复]
【发布时间】:2012-10-04 12:41:01
【问题描述】:

可能重复:
MySQL date format

我有这个日期,我需要进行比较,但我需要在查询后进行比较!

现在我有这个查询:

Select date WHERE date="$today"

$today 的格式为:dmY 我怎样才能将它直接转换成 dmY 呢?日期字段? 比如:

Select date("dmY",date) WHERE date="$today"

我不知道这是否可行,但我想它可能是,所以我会感谢一些帮助,即使它很简单,是的,它是可行的,不,它不是!

【问题讨论】:

  • 别告诉我,难道不允许人们有同样的问题吗?显然我已经阅读了一些东西,但没有找到我的能力可以理解的东西-.-'!可以投反对票,不代表随时可以使用
  • 呃?我禁止你有同样的问题吗?我真的阻止了你使用这个网站吗?包括。使用搜索并环顾四周?而且您确实知道在网站上发布问题具有同时获得以下功能的功能:否决或赞成。我无法理解您现在抱怨在这里发布问题。其他人可能会不这么认为,因此即使您觉得不正确,您也可能会遭到反对。

标签: php mysql


【解决方案1】:

我认为您遇到问题的地方是格式化 php 日期以适应您的 mysql_query 格式化的内容

这是我想出的。

我为您创建了一个简单的代码来处理这个问题。

过程是我使用 mysql 的 CURDATE() 函数从 mysql 获取今天的日期,然后对其进行格式化并匹配表上的现有列

MYSQL 数据库

    -- phpMyAdmin SQL Dump
-- version 3.4.5
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Oct 04, 2012 at 01:44 PM
-- Server version: 5.5.16
-- PHP Version: 5.3.8

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

--
-- Database: `my_db`
--

-- --------------------------------------------------------

--
-- Table structure for table `datetable`
--

CREATE TABLE IF NOT EXISTS `datetable` (
  `dateid` int(2) NOT NULL AUTO_INCREMENT,
  `datestuff` date NOT NULL,
  PRIMARY KEY (`dateid`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Dumping data for table `datetable`
--

INSERT INTO `datetable` (`dateid`, `datestuff`) VALUES
(1, '2012-10-02'),
(2, '2012-10-04');

PHP 代码(文件)

   <?php
//Connect to your host
$con = mysql_connect("localhost","admin","admin");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
//select your database
mysql_select_db("my_db", $con);

//getting today's date and formating it, output is like this (4-10-2012)
$today = date('j-m-Y');

//query your table, also date has been formated like this (4-10-2012)
$result = mysql_query("SELECT DATE_FORMAT( CURDATE( ) ,  '%e-%m-%Y' ) AS today, DATE_FORMAT( datestuff,  '%e-%m-%Y' ) AS datestuff FROM datetable WHERE CURDATE( ) = datestuff");

//get the resultset
while($row = mysql_fetch_array($result))
  {
  echo "date in table: ".$row['datestuff']. "---- today's date: ". $row['datestuff'];
  echo "<br />";
  }
?>

试试吧,如果它适合你,请告诉我......

【讨论】:

  • 即使您很友善,您也不应该仅仅为了回答一些标准问题,甚至可能是重复的问题。
  • 嘿,谢谢你,但它不起作用..我基本上需要比较日期..
  • @hakre 老兄,我只是想帮助一个兄弟......
  • 当然,我不会阻止你,只是不想让你觉得早被浪费了。
  • @BlertaBlerta 我粘贴的代码已经做到了,好好看看。我得到了当前日期,将它与表格中的日期行进行比较,并用它来获取结果......这不是你想要做的吗?
【解决方案2】:
Select date_format(date, '%d%m%Y') 
from your_table 
WHERE date="$today"

MySQL DATE_FORMAT

【讨论】:

  • 不幸的是,没有人能就日期格式字符串达成一致。 PHP 肯定是最灵活的,我希望 MySQL 和 C# 能够支持它。
【解决方案3】:

你需要使用date_format

Select date_format(date, '%d%m%Y) from table_name where date = "$today"

【讨论】:

    【解决方案4】:
    Select date_format("2012-06-01",'%d-%m-%Y') WHERE date="$today"
    

    注意*:可以在“%d/%m/%Y”中使用日期分隔符“-”或“/”

    比较日期示例:

    Select * From temp where mydate > '2009-06-29 16:00:44';
    

    【讨论】:

      猜你喜欢
      • 2020-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-07
      • 2013-06-21
      • 1970-01-01
      • 2012-05-27
      • 2018-09-21
      相关资源
      最近更新 更多