Comment faire « sélectionnez current_timestamp » dans hsqldb?
-
05-09-2019 - |
Question
Oracle:
select systimestamp from dual
MySQL:
select current_timestamp
SQL Server:
select current_timestamp
PostgreSQL:
select current_timestamp
La question est, comment puis-je obtenir l'horodatage en cours dans HSQLDB ? J'utilise la version 1.8.0.10
La solution
Vous pouvez écrire
select current_timestamp from tablename
où tablename
est une vraie table dans votre base de données.
Le résultat de la requête est que l'horodatage actuel.
Autres conseils
Dans une sélection j'utilise
SELECT CURRENT_DATE AS today, CURRENT_TIME AS now FROM (VALUES(0))
@ alexdown de réponse est tout à fait droit - sous 1.8, vous avez besoin d'une relation d'une ligne à faire, comme le DUAL
ou la table RDB$DATABASE
Interbase / Firebird Oracle
Lorsque vous vous déplacez à cependant, vous serez en mesure, série 2.0 pour utiliser SQL-99 « constructeur de valeurs » sans avoir recours à une relation d'une seule ligne:
sql> VALUES (current_timestamp);
2010-04-22 15:22:40.997
Si vous devez renommer la colonne des valeurs par défaut spécifiques au fournisseur que les valeurs choix, vous pouvez toujours utiliser un select: SELECT * FROM (VALUES (current_timestamp)) v(my_new_name)
Vous pouvez utiliser
CALL current_timestamp
pour récupérer l'horodatage en cours. Selon une discussion sur la liste de diffusion HSQL ce qui est beaucoup plus efficace que de faire un mannequin de sélection INFORMATION_SCHEMA.SYSTEM_TABLES
.
Avec HSQLDB 2.1 et plus tard, vous avez toutes les options.
Avec la propriété de connexion hsqldb.syntax_ora, hsqldb.syntax_pgs, hsqldb.syntax_mss ou hsqldb.syntax_mys = true, vous pouvez utiliser les formulaires pris en charge par d'autres bases de données. Le SQL est équivalent SET DATABASE SQL SYNTAX ORA TRUE
et similaire pour d'autres dialectes.
Le natif, sous forme SQLStandard, soutenue par HSQLDB dans tous les modes est le suivant:
VALUES (CURRENT_TIMESTAMP)