constante :
cadeia_de_caracteres |
constante_numérica |
constante_data_hora
cadeia_de_caracteres :
cadeia_padrão |
cadeia_C
constante_numérica :
constante_numérica_exata |
constante_numérica_aproximada
constante_data_hora :
DATETIME < {data [hora] | hora [data]} > [qualificador_data_hora]
hora :
valor_hora [ ":" valor_minuto [ ":" valor_segundo ]] |
valor_minuto [":" valor_segundo ] |
valor_segundo
data :
[ [ [BC | AD] valor_ano - ] valor_mes - ] valor_dia |
valor_dia [ / valor_mes [ / valor_ano [AC | DC] ] ]
qualificador_data_hora : campo_data_hora TO campo_data_hora
campo_data_hora : YEAR | MONTH | DAY | HOUR | MINUTE | SECOND
Uma cadeia de caracteres padrão é delimitada por caracteres apóstrofe (‘) e pode conter qualquer caracter válido. O apóstrofe (‘) dentro de uma cadeia deve ser representado por um par de caracteres apóstrofe (‘‘).
Uma cadeia de caracteres C é delimitada por aspas (") e segue as mesmas regras de formação de cadeia da linguagem C, podendo conter caracteres de controle como "\n", "\r", etc.
Uma constante numérica exata é uma seqüência de dígitos precedida ou não por sinal (+ ou -).
Ela pode conter uma parte inteira e uma parte decimal separados por um ponto (.). Se a constante não tiver parte decimal, o ponto no fim é opcional. Porém, se o número só tiver parte decimal o ponto no inicio é obrigatório (não é necessário colocar um 0 inteiro antes do ponto).
Uma constante numérica aproximada é uma mantissa seguida pelo caracter ‘E’ (ou ‘e’) seguido de um expoente. A mantissa é uma constante numérica exata e o expoente deve ser um inteiro precedido opcionalmente por um sinal. O valor da constante numérica aproximada é o valor da mantissa multiplicado pela potência de 10 correspondente ao expoente especificado.
Os valores de ano, mês, dia, hora, minuto e segundo são inteiros sem sinal e devem respeitar a correção do valor de uma data. Os identificadores BC (ou AC) e AD (ou DC) indicam, respectivamente, datas antes e depois da era cristã.
Em geral, uma constante_data_hora é auto-explicativa no que diz respeito ao significado de seus valores (2/4/1992 e 1992-4-2 significam 2 de abril de 1992 e 17:22:30 indica 17 horas, 22 minutos e 30 segundos). Existem apenas três casos que podem gerar ambigüidade para os quais existem uma interpretação padrão. Para alterá-los é necessária a utilização do qualificador_data_hora.
DATETIME <valor> |
indica um dia. |
DATETIME <valor / valor> |
indica dia e mês. |
DATETIME <valor - valor> |
indica mês e dia. |
DATETIME <valor : valor> |
indica hora e minuto. |
Em todos os outros casos, o possível qualificador_data_hora deve corresponder à definição da constante.
Dentro de uma constante numérica, não pode haver nenhum caracter branco, seja entre o sinal e o número, seja entre dígitos (Veja Tipos de Dados).