sql >> Database >  >> RDS >> Sqlserver

Datetime BETWEEN-instructie werkt niet in SQL Server

Heb je tijden gekoppeld aan je dates? BETWEEN is inclusief, maar wanneer u 2013-10-18 naar een datum converteert, wordt het 2013-10-18 00:00:000.00. Alles wat na de eerste seconde van de 18e wordt gelogd, wordt niet weergegeven met BETWEEN, tenzij u een tijdwaarde opneemt.

Probeer:

SELECT 
* 
FROM LOGS 
WHERE CHECK_IN BETWEEN 
    CONVERT(datetime,'2013-10-17') 
    AND CONVERT(datetime,'2013-10-18 23:59:59:998')

als u de hele dag van de 18e wilt zoeken. Ik heb milliseconden ingesteld op 998 omdat SQL Server in 2013-10-19 00:00:00:0000 in de query aan het trekken was.

SQL DATETIME-velden hebben milliseconden. Dus ik heb 999 aan het veld toegevoegd.



  1. zeer grote mysql-tabel en rapportage

  2. Een Django-app implementeren op AWS Elastic Beanstalk

  3. tabellen samenvoegen en resultaat weergeven [Laravel 5]

  4. ClassNotFoundException bij verbinding met Mysql met JDBC