PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Powszechny sposób porównywania znaczników czasu w Oracle, PostgreSQL i SQL Server

Nie jestem ekspertem od SQL Server, ale wiem, że to działa na Oracle i Postgresie i podejrzewam, że może działać na MSSQL, ale nie mam możliwości przetestowania tego ATM.

AND creation_date < (CURRENT_TIMESTAMP - interval '5' day)
AND creation_date >= (CURRENT_TIMESTAMP - interval '15' day)

Lub jeśli używasz typu daty zamiast znacznika czasu, możesz to zrobić, ale jestem prawie pewien, że nie zadziałałoby to w MSSQL. A typ DATE jest zupełnie inny między Oracle i Pg.

AND creation_date < CURRENT_DATE - 5
AND creation_date >= CURRENT_DATE - 15

Jak zauważono w komentarzach dla kucyków OMG, do typów dat można dodawać tylko int, a nie znaczniki czasu. (Oracle po cichu przesyła aktualny znacznik czasu)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres LEFT JOIN z SUM, brakujące rekordy

  2. Brak buforowania planu wykonania dla dynamicznego SQL w PostgreSQL 9.4?

  3. Konwertuj zbiór wyników z tablicy SQL na tablicę ciągów

  4. GIS:PostGIS/PostgreSQL vs. MySql vs. SQL Server?

  5. Problem z konstrukcją gdzie klauzula zawierająca wartości null/0