我在MySQL数据库中有一个用DATETIME
设置的表。我需要在此表中SELECT
仅限DATE并排除时间。
如果此特定列设置为SELECT
,我该如何在此表中DATETIME
仅按日期并绕过时间?
现在是:
2012-01-23 09:24:41
我只需为此SELECT
2012-01-23
答案 0 :(得分:136)
SELECT DATE(ColumnName) FROM tablename;
答案 1 :(得分:29)
你可以使用date_format
select DATE_FORMAT(date,'%y-%m-%d') from tablename
答案 2 :(得分:14)
您可以将select DATE(time) from appointment_details
仅用于日期
或
您只能使用select TIME(time) from appointment_details
答案 3 :(得分:10)
在MYSQL中,我们有一个名为 DATE_FORMAT(date,format)的函数。 在您的情况下,您的select语句将如下所示: -
SELECT DATE_FORMAT(dateTimeFieldName,"%a%m%Y") as dateFieldName FROM table_name
有关Mysql DATE和TIME函数 click here.
的更多信息答案 4 :(得分:10)
尝试使用
今天:
SELECT * FROM `tbl_name` where DATE(column_name) = CURDATE()
选定日期:
SELECT * FROM `tbl_name` where DATE(column_name) = DATE('2016-01-14')
答案 5 :(得分:6)
我尝试执行SELECT DATE(ColumnName)
,但对于TIMESTAMP
列† 不起作用,因为它们以UTC和UTC日期存储用于代替转换为本地日期。我需要选择时区中特定日期的行,因此将answer to this other question与Balaswamy Vaddeman's answer to this question合并,这就是我所做的:
DATETIME
只需SELECT DATE(ColumnName)
TIMESTAMP
Load the time zone data into 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
替换为您当地的时区。)
†唯一的例外是,如果您当地的时区是格林尼治标准时间,并且由于您的当地时间与UTC相同,则不会进行夏令时。
答案 6 :(得分:5)
只需你可以做
SELECT DATE(date_field) AS date_field FROM table_name
答案 7 :(得分:3)
XmlEventReader
如果您检查以下内容:
StreamSource
你可以看到它需要很长时间。
答案 8 :(得分:2)
尝试
SELECT * FROM Profiles WHERE date(DateReg)=$date
其中$ date在yyyy-mm-dd
可替换地
SELECT * FROM Profiles WHERE left(DateReg,10)=$date
干杯
答案 9 :(得分:1)
使用DATE_FORMAT
select DATE_FORMAT(date,'%d') from tablename =>Date only
示例:
select DATE_FORMAT(`date_column`,'%d') from `database_name`.`table_name`;
答案 10 :(得分:1)
SELECT DATE_FORMAT(NOW() - INTERVAL FLOOR(RAND() * 14) DAY,'%Y-%m-%d');
这个可用于以'yyyy-mm-dd'格式获取日期。
答案 11 :(得分:1)
Select * from table_name where date(datetime)
答案 12 :(得分:0)
为了实际为这个问题提出有效的解决方案:
SELECT ... WHERE `myDateColumn` >= DATE(DATE_FORMAT(NOW(),'%Y-%m-%d'));
显然,您可以将NOW()函数更改为您想要的任何日期或变量。
答案 13 :(得分:0)
请尝试此答案。
0 1 2 3 4
答案 14 :(得分:0)
如果time列位于timestamp上,则将使用此查询从该时间戳获取日期值
users: Users[];
ngOnInit() {
this.usersService.$users
.subscribe((users: User[]) => {
this.users = users.filter(user => user.status && user.name === 'some value')
});
}
答案 15 :(得分:0)
我在VB应用程序中使用一个简单的小函数(一行)解决了这个问题。从生产应用程序中取出的代码。该函数如下所示:
i
用法: 假设我有DateTimePicker1和DateTimePicker2,并且用户必须定义开始日期和结束日期。无论日期是否相同。我只需要使用DATE查询DATETIME字段。我的查询字符串很容易像这样构建:
Public Function MySQLDateTimeVar(inDate As Date, inTime As String) As String
Return "'" & inDate.ToString(format:="yyyy'-'MM'-'dd") & " " & inTime & "'"
End Function
该函数为查询中的DATETIME字段生成正确的MySQL DATETIME语法,并且查询正确返回该DATE(或日期之间)的所有记录。
答案 16 :(得分:0)
你可以使用 date_format
select DATE_FORMAT(date,'%y-%m-%d') from tablename
时区
sql2 = "SELECT DATE_FORMAT(CONVERT_TZ(CURDATE(),'US/Central','Asia/Karachi'),'%Y-%m-%d');"
您只能使用来自appointment_details 的select DATE(time) for date
or
You can use select TIME(time) from appointment_details for time only
if time column is on timestamp , you will get date value from that timestamp using this query
从表中选择日期(FROM_UNIXTIME(time))
答案 17 :(得分:0)
我喜欢这个
mysql:-
toStrictEqual
php
select * from dateTimeTable where datetimeCol >= '2021-08-05 00:00:00' and datetimeCol <= '2021-08-05 23:59:59'
$date 包含类似 2021-08-05 的日期
然后我从头开始删除字符以删除时间。时间字符是固定的,所以很容易删除