【问题标题】:Date range from today's date ordered by DD/MM/YYYY for the next week日期范围从今天的日期开始,按 DD/MM/YYYY 为下周排序
【发布时间】:2017-11-13 17:30:46
【问题描述】:

标题为“property_appointment”的表格列的格式设置为 DD/MM/YYYY,由于存在的数据量太大,无法更改为默认日期和时间设置。

我遇到的问题是从今天开始显示一系列约会(按日期排序),即查询应该显示系统中从今天开始的接下来的 6 个约会。目前它正在显示预定明年的约会,当我想查看下一周的小预测时,这没有帮助,因为它按降序对日期进行排序。从今天开始,它没有被指示显示约会,我尝试了很多东西,但我仍然无法弄清楚。

我知道日期格式很难实现,但是我当前的日期格式是否有解决方法来实现上述目标?非常感谢任何帮助!

if($properties = $db->prepare("
SELECT id
     , property_address_line_1
     , property_appointment
     , property_appointment_type 
  FROM users 
  JOIN properties 
    ON id = property_user_id 
 WHERE id = ? 
 ORDER 
    BY STR_TO_DATE(property_appointment,'%d/%m/%Y') DESC 
 LIMIT 6
 "))

【问题讨论】:

  • 为什么它已经消失了?创建一个新列,正确设置,运行更新。
  • 将日期存储为日期。这是一个“不费吹灰之力”。
  • STR_TO_DATE 有什么问题?
  • 数据库中有 1406 个属性,运行更新以复制日期和更改格式超出了我的技能水平。

标签: php mysql date sql-order-by


【解决方案1】:
SELECT id
     , property_address_line_1
     , property_appointment
     , property_appointment_type 
  FROM users 
  JOIN properties 
    ON id = property_user_id 
 WHERE id = ? 
   AND STR_TO_DATE(property_appointment,'%d/%m/%Y')  > CURDATE()
 ORDER BY STR_TO_DATE(property_appointment,'%d/%m/%Y') 
 LIMIT 6

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 2017-07-20
    • 2014-05-30
    相关资源
    最近更新 更多