【问题标题】:mysql select CURDATE() by where class in new timezonemysql 通过新时区的 where 类选择 CURDATE()
【发布时间】:2018-08-30 20:26:09
【问题描述】:

我已更新表格如下:

<?php
   $date = new DateTime();
   $date->setTimezone(new DateTimeZone('Asia/Kolkata'));
   $fdate = $date->format('Y-m-d H:i:s');
   $sql="update mytable set logged_on='$fdate' where id='$Id'";
  ?>

然后我尝试如下选择当前日期:

<?php
    date_default_timezone_set('Asia/Kolkata');
    $sql="select * from mytable where DATE(logged_on) = CURDATE()";
   ?>

但是 CURDATE() 不起作用。请告诉我如何按班级选择当前日期。

【问题讨论】:

  • 使用一次sysdate()

标签: php mysql timezone


【解决方案1】:

这是有效的

<?php
   $date = new DateTime();
   $date->setTimezone(new DateTimeZone('Asia/Kolkata'));
   $fdate = $date->format('Y-m-d H:i:s');
   $sql="select * from mytable where DATE(logged_on) = Date($fdate)" 
?>

但我认为更好的答案是

<?php
      $con=mysqli_connect("localhost","my_user","my_password","my_db");
      $con->query("SET GLOBAL time_zone = 'Asia/Calcutta'");
      $con->query("SET time_zone = '+05:30'");
      $con->query("SET @@session.time_zone = '+05:30'");
      $sql="select * from mytable where DATE(logged_on) = CURDATE()";
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-09
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多