Mysql
 sql >> база данни >  >> RDS >> Mysql

Използвайте датата в клетката на Excel в клаузата BETWEEN в SQL заявка

Вместо да форматирате стойности като дати или низове в SQL командата, е много по-добре да използвате ADODB.Parameter - в този случай шофьорът ще свърши цялата работа вместо вас. Не е нужно да се грижите за кавички около низ, форматиране на дата, така че базата данни да я разбира правилно (което силно зависи от базата данни, регионалните настройки и т.н.). Плюс това е защита срещу SQL инжектиране. Освен това оптимизаторът на заявки може да върши работата си много по-добре, защото получава една и съща SQL команда всеки път и запомня плана за изпълнение.

Недостатък:кодът става малко по-сложен, защото трябва да включите ADODB.command обект.

Във вашия SQL оператор вие поставяте прост ? на мястото, където искате да имате параметър. Просто трябва да се погрижите за номерата и позицията на ? и съвпадения на параметрите.

Dim Conn As New ADODB.Connection, cmd As New ADODB.Command, param As ADODB.Parameter, rs As ADODB.Recordset
Conn.Open "<your connection string>"
Set cmd.ActiveConnection = Conn
cmd.CommandText = "SELECT cID FROM logistics WHERE DATE(insert_timestamp) BETWEEN ? AND ? GROUP BY 1"

Set param = cmd.CreateParameter(, adDate, adParamInput, , Date)
cmd.Parameters.Append param
Set param = cmd.CreateParameter(, adDate, adParamInput, , Date + 1)
cmd.Parameters.Append param

Set rs = cmd.Execute
Debug.Print rs.Fields(0).Name, rs(0).Value

P.S. Бях малко мързелив за обработката на датата, ако имате данни точно в полунощ, ще получите твърде много данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PacketTooBigException при извършване на сонарен анализ

  2. mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows и т.н.... очаква параметър 1 да бъде ресурс

  3. Как да разрешим грешка при извикване на недефинирана функция dbase_open() в Windows

  4. Получаване на заявка за класиране на PHP MYSQL за класиране въз основа на общата сума от точки

  5. Hibernate CriteriaBuilder, за да се присъедините към няколко таблици