Я хочу получить все данные текущей даты из своей базы данных. Я использую phpMyAdmin. Это запрос, который я использую, но он не показывает никаких данных.

SELECT * FROM tables WHERE time = CURDATE();

1

0
user8055917 27 Июн 2019 в 15:18

3 ответа

Лучший ответ

В SQL Server вы можете сделать:

WHERE CONVERT(DATE, time) = CONVERT(DATE, time)

SQL Server достаточно умен, чтобы использовать индекс при преобразовании даты / времени в дату, так что это безопасно для индекса.

Ваш синтаксис больше напоминает MySQL. В этой базе лучшее решение:

WHERE time >= curdate() AND
      time < curdate() + interval 1 day
1
Gordon Linoff 27 Июн 2019 в 12:23

Попробуйте перевести ваше время в формат даты

SELECT * FROM tables WHERE convert(time,getdate(), 101)  = CURDATE();

Подробнее о преобразовании даты: https://tableplus.io/blog/2018/09/ms-sql-server-how-to-get-date-only-from-datetime-value.html

https://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/

0
Viktor Ilyenko 27 Июн 2019 в 12:46

Похоже, вы используете SQL Server, поэтому это должно работать:

SELECT * FROM tables
WHERE convert(varchar(10), time, 102) = convert(varchar(10), getdate(), 102)
0
Lucas 27 Июн 2019 в 12:24