В Oracle Database, SYSDATE
функцията връща текущата дата и час, зададени за операционната система, на която се намира сървърът на базата данни.
Върнатата стойност е от тип DATE
.
Синтаксис
Синтаксисът е така:
SYSDATE
Така че не се изискват (или приемат) аргументи и няма скоби.
Пример
Ето един пример:
SELECT SYSDATE
FROM DUAL;
Резултат:
06/AUG/21
Този пример показва датата въз основа на стойността на NLS_DATE_FORMAT
на моята система параметър (който в момента е DD/MON/RR
). Можем да променим този параметър или да използваме функция като TO_CHAR()
за да върнете резултата в различен формат.
Пример:
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD')
FROM DUAL;
Резултат:
2021-08-06
Извикване на SYSDATE
със скоби
Както споменахме, SYSDATE
функцията се извиква без скоби.
Ето какво се случва, когато го извикаме със скоби:
SELECT SYSDATE()
FROM DUAL;
Резултат:
Error starting at line : 1 in command - SELECT SYSDATE() FROM DUAL Error at Command Line : 1 Column : 15 Error report - SQL Error: ORA-00923: FROM keyword not found where expected 00923. 00000 - "FROM keyword not found where expected" *Cause: *Action:
Коригиране на SYSDATE
Връщана стойност
FIXED_DATE
параметърът за инициализация ви позволява да зададете постоянна дата и час, които SYSDATE
винаги ще се връща вместо текущата дата и час.
Това може да помогне при тестване в ситуации, когато имате нужда от едни и същи входни данни, за да произвеждате един и същ резултат последователно.
Вижте документацията на Oracle за FIXED_DATE
както и параметри за инициализация като цяло за повече информация.