datetime mySQL只selectdate
我有一个在date时间设置MySQL数据库中的表。
我只需要在DATE中SELECT
此表,并排除时间。
即使特定的列被设置为datetime
如何仅以dateselect并绕过时间?
例:
现在是: 2012-01-23 09:24:41
我只需要为2012-01-23
做一个SELECT
select date(ColumnName) from tablename
更多关于MySQLdate()
你可以使用date_format
select DATE_FORMAT(date,'%y-%m-%d') from tablename
您只能使用select DATE(time) from appointment_details
作为date
要么
您只能使用select TIME(time) from appointment_details
的时间
在MYSQL中,我们有称为DATE_FORMAT(date,格式)的函数。 在你的情况下,你的select语句将变成这样:
SELECT DATE_FORMAT(dateTimeFieldName,"%a%m%Y")
作为dateFieldName FROM table_name
有关Mysql DATE和TIME函数的更多信息。 点击这里
尝试使用
今天:
SELECT * FROM `tbl_name` where DATE(column_name) = CURDATE()
选定date:
SELECT * FROM `tbl_name` where DATE(column_name) = DATE('2016-01-14')
我试着做一个SELECT DATE(ColumnName)
,但是这不适用于TIMESTAMP
列†,因为它们是以UTC格式存储的,并且使用了UTCdate而不是转换为本地date。 我需要select在我的时区特定date的行,所以我把这个问题 的答案与Balaswamy Vaddeman对这个问题的答案结合起来,这就是我所做的:
如果您将date存储为DATETIME
只要做SELECT DATE(ColumnName)
如果您将date存储为TIMESTAMP
如果您还没有这样做,请将时区数据加载到MySQL中 。 对于Windows服务器,请参阅上一个链接。 对于Linux,FreeBSD,Solaris和OS X服务器,您应该这样做:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
然后像这样格式化你的查询:
SELECT DATE(CONVERT_TZ(`ColumnName`, 'UTC', 'America/New_York'))
你也可以把这个放在查询的WHERE
部分中(但注意那个列上的索引不起作用):
SELECT * FROM tableName WHERE DATE(CONVERT_TZ(`ColumnName`, 'UTC', 'America/New_York')) >= '2015-02-04'
(显然可以用America/New_York
代替当地的时区。)
†唯一的例外情况是,如果您的本地时区是GMT,而且由于您的本地时间与UTC相同,您不需要执行夏令时。
只要你能做到
SELECT DATE(date_field) AS date_field FROM table_name
Select * from table_name where date(datetime)
使用DATE_FORMAT
select DATE_FORMAT(date,'%d') from tablename =>Date only
例:
select DATE_FORMAT(`date_column`,'%d') from `database_name`.`table_name`;
SELECT DATE_FORMAT(NOW() - INTERVAL FLOOR(RAND() * 14) DAY,'%Y-%m-%d');
这个可以用来以'yyyy-mm-dd'的格式得到date。
尝试SELECT * FROM Profiles WHERE date(DateReg)=$date
其中$ date是yyyy-mm-dd
另外SELECT * FROM Profiles WHERE left(DateReg,10)=$date
干杯
为了实际解决这个问题:
SELECT ... WHERE `myDateColumn` >= DATE(DATE_FORMAT(NOW(),'%Y-%m-%d'));
显然,你可以将NOW()函数改成你想要的任何date或variables。