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

разл. между дати - SQL плюс

Заглавието на въпроса включва „SQL plus“, което за мен предполага Oracle.

Oracle няма функция DATEDIFF. Най-простият метод за определяне на броя на дните между 2 дати с помощта на Oracle е да се извади една дата от другата.

Select item, datebought, datesold, datesold-datebought as days from auctions;

Oracle съхранява информация за дата и час в поле за дата. Обичайна практика е да съхранявате дати, съкратени до полунощ, в полетата за дати в Oracle, ако не ви интересува часът.

Ако вашите дати вече са съкратени до полунощ, тогава изчислената стойност ще бъде цяло число.

Но ако вашите съхранени дати включват информация за времето, тогава може да искате да съкратите стойността, за да получите интегрална стойност. Подозирам, че бихте искали да съкратите всяка дата преди изваждането, така че ако бъде закупено на един ден, всеки момент от следващия ден да се счита за 1 ден. Oracle съкращава датите до полунощ.

select item, datebought, datesold, trunc(datesold)-trunc(datebought) as days from auctions;

Съгласен съм с WarrenT, че вашата таблица не трябва да има колоната денормализирани дни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да форматирам своите заявки за Oracle, така че колоните да не се обвиват?

  2. Ограничаване на резултат с помощта на PHP, без използване на клауза LIMIT при извличане на редове в заявка за база данни?

  3. Има ли официална препоръка на Oracle за използването на явни ANSI JOIN срещу неявни присъединявания?

  4. Връщане на краткото име на ден от дата в Oracle

  5. ИЗБЕРЕТЕ ОТДЕЛНА CLOB_COLUMN ОТ ТАБЛИЦА;