quarta-feira, 14 de abril de 2010

Operador SysDate

IBM Informix Guide to SQL: Syntax

O operador SYSDATE retorna o valor DATETIME atual do relógio do sistema. SYSDATE é idêntico ao operador CURRENT, exceto que a precisão padrão SYSDATE é YEAR TO FRACTION(5), enquanto que a precisão padrão do CURRENT é YEAR TO FRACTION(3).

Em plataformas Windows® que não suportam uma escala de segundo maior que FRACTION(3), SYSDATE é na verdade um sinônimo para o operador CURRENT.

Você pode usar SYSDATE em qualquer contexto em que o operador CURRENT é válido.

As instruções SQL no exemplo a seguir usa o operador SYSDATE para especificar os valores padrão de duas colunas DATETIME de uma tabela do banco de dados, e para inserir uma nova linha na tabela:

CREATE TABLE tab1 (
id SERIAL,
value CHAR(20),
time1 DATETIME YEAR TO FRACTION(5) DEFAULT SYSDATE,
time2 DATETIME YEAR TO SECOND DEFAULT SYSDATE YEAR TO SECOND
);

INSERT INTO tab1 VALUES (0, 'description', SYSDATE, SYSDATE);
A consulta a seguir acessa a tabela que foi criada no exemplo acima:


SELECT SYSDATE AS sysdate, * FROM tab1;


Os resultados são sensíveis à data e hora quando as declarações  INSERT e o SELECT são emitidos, mas a consulta pode retornar esses valores em 23 de setembro de 2007:


sysdate  2007-09-23 21:30:23.00000
id 1
value description
time1 2007-09-23 21:29:27.00000
time2 2007-09-23 21:29:27


A próxima consulta acessa a mesma tabela, usando SYSDATE na cláusula WHERE como um argumento para a função DAY:


SELECT *, DAY(time1) AS day FROM tab1 
WHERE DAY(time1) = DAY(SYSDATE);


A consulta retorna o seguinte valor:


id       1
value description
time1 2007-09-23 21:29:27.00000
time2 2007-09-23 21:29:27
day 23


Somente o Informix Dynamic Server suporta o SYSDATE. Exceto por seu nome e sua precisão,  o Operador CURRENT também descreve o Operador SYSDATE.

Nenhum comentário:

Postar um comentário