Funções de contexto¶
Essa família de funções permite coletar informações sobre o contexto em que a instrução é executada. Essas funções são avaliadas no máximo uma vez por instrução.
Neste tópico:
Lista de funções¶
Subcategoria |
Função |
Notas |
---|---|---|
Contexto geral |
||
Alias para CURRENT_TIMESTAMP. |
||
Alias para CURRENT_TIME. |
||
Alias para CURRENT_TIMESTAMP. |
||
Contexto de sessão |
||
Retorna o localizador de conta. |
||
Retorna o nome da conta. |
||
Contexto do objeto de sessão |
||
Contexto de alerta |
Notas de uso¶
As funções de contexto geralmente não requerem argumentos.
Para cumprir com o padrão ANSI, as seguintes funções de contexto podem ser chamadas sem parênteses em instruções SQL:
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_USER
LOCALTIME
LOCALTIMESTAMP
Nota
Se você estiver configurando uma variável Snowflake Scripting para uma expressão que chama uma dessas funções (por exemplo,
my_var := <function_name>();
), é necessário incluir os parênteses.
Exemplos¶
Exibir o warehouse, banco de dados e esquema atuais para a sessão:
SELECT CURRENT_WAREHOUSE(), CURRENT_DATABASE(), CURRENT_SCHEMA();
+---------------------+--------------------+------------------+
| CURRENT_WAREHOUSE() | CURRENT_DATABASE() | CURRENT_SCHEMA() |
|---------------------+--------------------+------------------+
| MY_WAREHOUSE | MY_DB | PUBLIC |
|---------------------+--------------------+------------------+
Mostrar a data, hora e carimbo de data/hora atuais (observe que não é necessário usar parênteses para chamar essas funções):
SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;
+--------------+--------------+-------------------------------+
| CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP |
|--------------+--------------+-------------------------------|
| 2024-06-07 | 10:45:15 | 2024-06-07 10:45:15.064 -0700 |
+--------------+--------------+-------------------------------+
Em um bloco de Snowflake Scripting, chame a função CURRENT_DATE sem parênteses para definir uma variável em uma instrução SQL:
EXECUTE IMMEDIATE
$$
DECLARE
currdate DATE;
BEGIN
SELECT CURRENT_DATE INTO currdate;
RETURN currdate;
END;
$$
;
+-----------------+
| anonymous block |
|-----------------|
| 2024-06-07 |
+-----------------+
Em um bloco de Snowflake Scripting, tentar definir uma variável para uma expressão que chama a função CURRENT_DATE sem parênteses resulta em um erro:
EXECUTE IMMEDIATE
$$
DECLARE
today DATE;
BEGIN
today := CURRENT_DATE;
RETURN today;
END;
$$
;
000904 (42000): SQL compilation error: error line 5 at position 11
invalid identifier 'CURRENT_DATE'
O mesmo bloco retorna a data atual quando a função é chamada entre parênteses:
EXECUTE IMMEDIATE
$$
DECLARE
today DATE;
BEGIN
today := CURRENT_DATE();
RETURN today;
END;
$$
;
+-----------------+
| anonymous block |
|-----------------|
| 2024-06-07 |
+-----------------+