【问题标题】:Mysql casting for datetime to date not reflecting in output日期时间到日期的Mysql转换未反映在输出中
【发布时间】:2017-02-25 06:52:44
【问题描述】:

我有一个表格,其中有一列日期时间类型。我只是尝试使用两个查询将其转换为日期,它们是

  1. select cast(attendance_student.created_date as date) from attendance_student
  2. select date(attendance_student.created_date) from attendance_student

但两次我的输出都是

7/16/2015 12:00:00 AM
7/16/2015 12:00:00 AM
7/16/2015 12:00:00 AM
7/16/2015 12:00:00 AM
7/16/2015 12:00:00 AM
7/16/2015 12:00:00 AM
7/16/2015 12:00:00 AM
7/16/2015 12:00:00 AM

为什么我不能得到日期格式的输出。

这是我的表格脚本

CREATE TABLE `attendance_student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `attendance_id` int(11) DEFAULT NULL,
  `is_present` tinyint(1) DEFAULT '1',
  `created_by` varchar(50) DEFAULT NULL,
  `created_date` datetime DEFAULT NULL,
  `modified_by` varchar(50) DEFAULT NULL,
  `last_modified_date` datetime DEFAULT NULL,
  `is_on_leave` tinyint(1) DEFAULT NULL,
  `student_id` int(11) DEFAULT NULL,
  `is_cocurricular_leave` tinyint(1) DEFAULT '0',
  `is_activity_attendance` tinyint(1) DEFAULT '0',
  `activity_id` int(11) DEFAULT NULL,
  `is_sms_sent` tinyint(2) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_attendance_attendance_student` (`attendance_id`) USING BTREE,
  KEY `id_student_attendance_student` (`student_id`) USING BTREE,
  KEY `fk_activity_student_attendance_id` (`activity_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

【问题讨论】:

    标签: mysql date datetime casting


    【解决方案1】:

    这符合预期,因为DATE 函数返回与给定日期时间相同的日期,时间为 00:00 或 12 小时格式 12:00 AM。

    您可以使用DATE_FORMAT 将日期部分作为字符串获取:

    select date_format(created_date, '%Y-%m-%d') as created_date
    from attendance_student
    

    【讨论】:

      猜你喜欢
      • 2018-05-06
      • 2017-06-07
      • 1970-01-01
      • 2014-10-13
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多