Мониторинг обменных курсов валют
18c0693f

Выражения над временем и датами


К выражениям над временем и датой мы относим выражения, вырабатывающие значения типа дата-время и интервал. Выражения дата-время определяются следующими синтаксическими правилами: >

<datetime value expression> ::= <datetime term> |<interval value expression> <plus sign> <datetime term> |<datetime value expression> <plus sign> <interval term> <datetime value expression> <minus sign> <interval term> <datetime term> ::= <datetime factor> <datetime factor> ::= <datetime primary> [ <time zone> ] <datetime primary> ::= <value expression primary> |<datetime value function> <time zone> ::= AT <time zone specifier> <time zone specifier> ::= LOCAL TIME ZONE <interval value expression>

Пояснения: Как видно из описания синтаксиса, сами выражения строятся очень просто - на основе обычных арифметических операций. Снова более интересны первичные составляющие- вызовы функций, возвращающих значение дата-время. Эти вызовы определяются следующим синтаксисом:

<datetime value function> ::= <current date value function> |<current time value function> |<current timestamp value function> <current date value function> ::= CURRENT_DATE <current time value function> ::= CURRENT_TIME [ <left paren> <time precision> <right paren> ] <current timestamp value function> ::= CURRENT_TIMESTAMP [ <left paren> <timestamp precision> <right paren> ]

Видимо, приведенные синтаксические правила не нуждаются в комментариях: можно получить текущую дату, а также текущее время с желаемой точностью.

Синтаксис выражений со значениями типа интервал определяется следующими правилами:

<interval value expression> ::= <interval term> |<interval value expression 1> <plus sign> <interval term 1> |<interval value expression 1> <minus sign> <interval term 1> |<left paren> <datetime value expression> <minus sign> |<datetime term> <right paren> <interval qualifier> <interval term> ::= & lt;interval factor> |<interval term 2> <asterisk> <factor> |<interval term 2> <solidus> <factor> |<term> <asterisk> <interval factor> <interval factor> ::= [ <sign> ] <interval primary> <interval primary> ::= <value expression primary> [ <interval qualifier> ] <interval value expression 1> ::= <interval value expression> <interval term 1> ::= <interval term> <interval term 2> ::= <interval term>

Как видно из приведенных правил, выражения со значениями типа интервал устроены очень просто; почти вся содержательная информация была приведена при обсуждении соответствующего типа данных. Стоит только заметить, что квалификатор интервала указывается для того, чтобы явно специфицировать единицу измерения интервала.






Самый выгодный курс обмена валюты