Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于文本字段将字段显示为yyyy/mm/dd_Php_Mysql_Sorting - Fatal编程技术网

Php 基于文本字段将字段显示为yyyy/mm/dd

Php 基于文本字段将字段显示为yyyy/mm/dd,php,mysql,sorting,Php,Mysql,Sorting,使用PHP和MySQL,我有一个事件表,它由一个名为:sort_date的字段排序,格式为yyyy/mm/dd 我需要在页面上显示开始日期:月日(例如11月7日) 因此,我将开始日期和结束日期字段最初设置为日期选择器。但一旦输入了一条记录,我就必须手动更改日期的格式:月日。但这并没有按升序对日期进行排序,所以我有一个排序日期字段…这是yyyy/mm/dd格式 我希望在我的页面上列出如下事件: 八月二十七日 时间 哪里 地址 描述 这是可行的,但现在我将开始和结束日期更改为文本,sort_date

使用PHP和MySQL,我有一个事件表,它由一个名为:sort_date的字段排序,格式为yyyy/mm/dd

我需要在页面上显示开始日期:月日(例如11月7日)

因此,我将开始日期和结束日期字段最初设置为日期选择器。但一旦输入了一条记录,我就必须手动更改日期的格式:月日。但这并没有按升序对日期进行排序,所以我有一个排序日期字段…这是yyyy/mm/dd格式

我希望在我的页面上列出如下事件:

八月二十七日 时间 哪里 地址 描述

这是可行的,但现在我将开始和结束日期更改为文本,sort_date字段没有读取信息

所以我的问题是,如何让sort_date字段读取文本start_date字段中的内容并将其显示为yyyy/mm/dd

以下是我的sql语句:

SELECT * 
  FROM events
 WHERE DATE_FORMAT(sort_date, '%Y-%m-%d') >= Date_Format(Now(), '%Y-%m-%d')
   AND authorize = 1 
 ORDER BY sort_date
如何修复此问题?

这需要两个步骤

首先,需要将文本列日期转换为
date
表达式

你可以这样做,例如

 STR_TO_DATE('2014/11/18', '%Y/%m/%d')
然后,您可以操纵该
DATE
表达式,对其进行排序或格式化,或者执行任何需要执行的操作。要从上述表达式中获取2014年11月的
,您需要执行以下操作:

DATE_FORMAT(STR_TO_DATE('2014/11/18', '%Y/%m/%d'), '%M %Y')
要从该表达式中获取包含11月1日(当月第一天)的
DATE
值,可以执行以下操作

DATE(DATE_FORMAT(STR_TO_DATE('2014/11/18', '%Y/%m/%d'), '%Y-%m-01'))
关键是,您应该将基于字符串的日期转换为
DATE
表达式,因为这样可以使用各种有用的日期算术运算

要处理问题中的
WHERE
子句,请执行以下操作:

WHERE STR_TO_DATE(sort_date, '%Y/%m/%d') >= NOW()
要处理
ORDER BY子句,可以执行以下操作:

ORDER BY STR_TO_DATE(sort_date, '%Y/%m/%d')
这里有危险。如果某些日期字符串格式错误,MySQL日期转换将自动返回NULL。因此,我将使用以下
orderby
子句,然后仔细查看输出,至少一次

ORDER BY STR_TO_DATE(sort_date, '%Y/%m/%d') NULLS FIRST

你看过使用矩量.ms吗?我明白你的意思了,John关于STR_TO_DATE()…但是我如何让该字段从另一个字段读取文本条目呢?下面是我的sql语句:从事件中选择*,其中DATE_FORMAT(sort_DATE,'%Y-%m-%d')>=DATE_FORMAT(Now(),'%Y-%m-%d')和authorize=1 ORDER BY sort_DATE