Фильтровать по дате с помощью SQL

#sql

#sql

Вопрос:

Я хотел бы знать, что вы думаете:

Я должен получить все подключения, которые у меня были к системе во время сеанса. Чтобы автоматизировать этот процесс, я решил использовать current_date% , который не будет работать, потому что current_date — это не строка, это функция.

Итак, мой вопрос в том, может ли кто-нибудь помочь мне с запросом, чтобы получить количество всех подключений за текущий день.

Заранее спасибо!

Мой дерьмовый код:

 SELECT COUNT(id) FROM user_connections
WHERE connectiondate LIKE 'CURRENT_DATE%'
  

Комментарии:

1. какой тип поля вы используете для «connectiondate»

2. Тип данных — date, и формат, сохраненный в нем, такой: 2018-12-17T19:47:23.000Z

Ответ №1:

Лучший способ (с точки зрения производительности) — использовать логику, подобную этой:

 WHERE connectiondate >= CURRENT_DATE AND
      connectiondate < CURRENT_DATE   INTERVAL '1 DAY'
  

Не все базы данных поддерживают стандартный синтаксис ISO / ANSI для дат, поэтому точное выражение в вашей базе данных может отличаться.

Ответ №2:

Вам нужно только connectiondate >= CURRENT_DATE :

 SELECT COUNT(id) FROM user_connections
WHERE connectiondate >= CURRENT_DATE
  

если тип данных connectiondate является datetime .
Если это так, date тогда подойдет простой connectiondate = CURRENT_DATE .

Комментарии:

1. @MissCodesALot что произошло?