Mysql 从 datetime 剥离时间组件

Mysql strip time component from datetime

提问人:abarax 提问时间:11/6/2008 更新时间:7/26/2019 访问量:124324

问:

我需要在不考虑时间成分的情况下在 Mysql 中进行日期比较,即我需要将“2008-11-05 14:30:00”转换为“2008-11-05”

目前我正在这样做:

SELECT from_days(to_days(my_date))

有没有合适的方法?

SQL MySQL 日期时间

评论


答:

200赞 Robert Gamble 11/6/2008 #1

是的,使用日期函数:

SELECT date(my_date)

评论

0赞 Joshua Pinter 12/10/2021
就是这个。谢谢。由于某种原因,在答案列表中排在最后。
3赞 Andy Lester 11/6/2008 #2

在 PostgreSQL 中,您使用 TRUNC() 函数,但我在 MySQL 中没有看到它。从我简短的谷歌搜索来看,看起来你需要将 DATETIME 值转换为 DATE。

date_col = CAST(NOW() AS DATE)

查看 http://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html

评论

1赞 5/7/2013
date_trunc()(not ) 实际上不会删除 Postgres 中的时间部分。它只会将其设置为不同的东西。trunc()00:00:00
24赞 11/6/2008 #3

select date(somedate)是最常见的。

如果需要适应其他格式,可以使用:

SELECT DATE_FORMAT(your_date, '%Y-%m-%d');

评论

2赞 Mario Awad 9/20/2012
例如,该DATE_FORMAT对于仅提取年份部分非常有用。谢谢。
-5赞 PlayHardGoPro 9/26/2012 #4

你可以使用ToShortDateString();

评论

0赞 andrewsi 9/26/2012
这不是 C# 函数吗?问题是在MySQL解决方案之后
0赞 Nizar B. 12/4/2014
它是 C#,实际上它不会删除时间戳:将当前 DateTime 对象的值转换为其等效的短日期字符串表示形式。
0赞 Rajeev Kumar 5/7/2013 #5

只是一个简单的方法,从你的查询中做到这一点date("d F Y",strtotime($row['date']))$row['date']