在 mysql 中选择年份开始日期时为零值


Zero values when selecting year from date in mysql

我正在尝试使用 PHP 在 MySQL 中选择年份:

session_start();
$school_id = $_SESSION['school_id'];
$section_id = $_POST['section_id'];
$today  = date("Y");
$select_grades_deped = "SELECT * 
             FROM deped_grade_archive 
             WHERE school_id='$school_id'
             AND section_id='$section_id'
             AND year(submission_date) ='$today' ";
$query_check_grades= mysql_query($select_grades_deped) or die (mysql_error());
$check_count = mysql_num_rows($query_check_grades);
if($check_count == 0){
    $return['checked'] = "0";
}
else{
    $return['checked'] = "1";
}
echo json_encode($return);

但不幸的是,当我尝试以下方法时:

SELECT year( submission_date )
FROM deped_grade_archive
WHERE school_id = '$school_id'
AND section_id = '$section_id'

它从我的表中返回了零值。我将submission_date的数据类型更改为date数据类型,因为它以前varchar但仍然没有用。请帮助伙计们。

将其更改为 date 数据类型时,如果未为列设置默认值(例如 CURRENT_TIMESTAMP ),则该值将为 0000-00-00 。因此,YEAR操作将返回0,如下所示。

您需要将submission_date列更新为您希望为每行指定的时间。

试试吧

           SELECT YEAR('submission_date')

裁判