Maison  >  Article  >  base de données  >  Comment interroger le format de l'heure dans Oracle

Comment interroger le format de l'heure dans Oracle

WBOY
WBOYoriginal
2022-01-26 15:01:407090parcourir

Dans Oracle, vous pouvez utiliser l'instruction "select sysdate from dual;" pour interroger le format de l'heure. L'instruction select peut effectuer une requête simple sur les données. Cette instruction est utilisée pour formater la date de sortie.

Comment interroger le format de l'heure dans Oracle

L'environnement d'exploitation de ce tutoriel : système Windows 10, version Oracle 11g, ordinateur Dell G3.

Comment Oracle interroge le format de l'heure

1. Stockage des données Oracle au format de l'heure

Oracle stocke l'heure dans un format de stockage spécifique, qui occupe 7 octets et n'a rien à voir avec l'heure affichée par la requête. L'heure stockée comprend l'année, le mois, le jour, l'heure, les minutes et les secondes. La précision minimale est la seconde. Les unités de temps inférieures aux secondes ne sont pas stockées. Par conséquent, vous devez y prêter attention lorsque certains programmes frontaux prenant en charge le niveau milliseconde (tels que les programmes clients PB) se connectent à la base de données Oracle. Le format de l'heure affiché lors de la requête est déterminé par l'environnement de la session ou défini par l'utilisateur et n'a rien à voir avec la base de données. 2. Format d'affichage de l'heure Oracle

Habituellement, une fois que le client établit une connexion avec la base de données, Oracle donnera. une valeur par défaut La forme d'affichage des données au format horaire est liée au jeu de caractères utilisé. Généralement, l'année, le mois et le jour sont affichés à la place des heures, des minutes et des secondes. Par exemple, lors de l'utilisation du jeu de caractères us7ascii (ou d'autres jeux de caractères anglais), le format d'heure par défaut est affiché comme suit : 28 janvier 2003, et lors de l'utilisation du jeu de caractères zhs16gbk (ou d'autres jeux de caractères chinois), le format d'heure par défaut est affiché. s'affiche sous la forme : 2003-janvier-28. Lors de l'insertion de données dans la table, si vous n'utilisez pas de fonction de conversion, le format du champ heure doit être conforme au format heure de l'environnement de session, sinon l'insertion ne pourra pas être effectuée. Pour afficher le format d'heure de la session en cours, vous pouvez utiliser l'instruction SQL suivante :

SQL> select sysdate from dual;

3. Insérer des données de format d'heure dans la table oracle

L'insertion de données de format d'heure dans la table oracle est une chose relativement gênante. vous écrivez vos valeurs temporelles en stricte conformité avec le format horaire de la session en cours, ou vous utilisez une fonction de conversion pour personnaliser le format des données temporelles. Il existe deux fonctions de conversion liées au temps : to_char et to_date. La fonction to_char (valeur temporelle, format horaire) convertit la valeur temporelle en une forme de chaîne, généralement utilisée dans les requêtes ; to_date (chaîne, format horaire) convertit la chaîne de format en une valeur temporelle, généralement utilisée dans l'instruction d'insertion

4 Comment modifier le format de date dans la session

On dit qu'il existe trois façons de modifier le format de date dans la session en cours. Je n'ai essayé que les deux premières méthodes. Je n'ai pas essayé la méthode de modification du glogin. fichier sql. Je ne sais pas. Est-ce vraiment possible ? Expliquez un par un ci-dessous.

(1) Modifiez le format de date de la session en cours dans sql*plus

SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss' ; : 2003-01-28 15:23:38, c'est-à-dire quatre chiffres pour l'année - deux chiffres pour le mois - deux chiffres pour le jour, l'espace, l'heure : minute : seconde dans le système de 24 heures.

Cette méthode de modification n'est valable que pour la session en cours. Notez qu'il s'agit de la session en cours, pas de la fenêtre sql*plus actuelle. Autrement dit, si vous le modifiez ainsi et utilisez ensuite la commande connect pour vous connecter à la base de données en tant qu'autre utilisateur ou vous connecter à une autre base de données, le format de date deviendra invalide et reviendra au format de date par défaut.

(2) Modifiez le registre (uniquement pour les systèmes Windows)

Ajoutez une chaîne (version 8i) à la clé primaire de hkey_local_machinesoftwareoraclehome0 dans le registre. Le nom de la chaîne est nls_date_format La valeur de la chaîne est le format d'heure souhaité. à définir, tel que : aaaa-mm-jj hh24:mi:ss puis redémarrez sql*plus.

Cette méthode de modification est valable pour la fenêtre sql*plus, c'est-à-dire que quel que soit le nombre de fenêtres sql*plus que vous ouvrez, ce format d'heure sera le format par défaut. La modification du registre côté serveur n'est pas valide. Seule la modification du registre côté client est effective.

(3) Modifier le fichier glogin.sql dans le répertoire $oracle_homesqlplusadmin

Je n'ai pas essayé cette méthode, donc je n'ose pas le dire au hasard, pour ne pas induire tout le monde en erreur. Merci de me donner quelques conseils d'experts qui connaissent cette méthode.

5 Priorité du format de date

Si dans un environnement spécifique, le registre et la session en cours sont modifiés à l'aide de la commande alter session, quelle méthode de modification est efficace ? La commande alter session est valide et a la priorité la plus élevée. Autrement dit, quel que soit l'environnement client actuel ou la manière dont le registre a été modifié, tant que vous utilisez la commande alter session pour modifier le format de l'heure, votre format d'heure modifié prévaudra. Par conséquent, si vous utilisez directement une requête interactive sql*plus ou si vous insérez des données au format horaire, les deux méthodes peuvent être utilisées. Si vous utilisez des fichiers SQL pour l'insertion par lots ou l'exécution planifiée, il est préférable d'utiliser la commande alter session pour modifier la session avant d'utiliser les données de temps afin de garantir que le fonctionnement normal de cette instruction SQL n'a rien à voir avec l'environnement. De même, si le programme client frontal doit utiliser des données au format horaire, il est préférable de modifier la session avant utilisation, ou d'utiliser la fonction to_char ou to_date pour convertir (l'utilisation de fonctions de conversion est fortement recommandée) pour garantir que le le programme fonctionne en accord avec l'environnement Rien à faire.

Résumé :

La base de données Oracle définit de nombreuses fonctions pour les données de type temps, notamment pour le calcul des données temporelles, ce qui est très pratique. Bien entendu, la condition préalable pour plus de commodité est que vous soyez familier avec les fonctions temporelles d'Oracle. Ici, je vois parfois des personnes utiliser des champs de type chaîne lors du stockage de données de type temps. Je m'oppose fortement à cette approche, que ce soit du point de vue de la surcharge du système, du calcul des données temporelles ou de la récupération de certaines sous-données. les données, telles que l'obtention du mois à l'heure, l'obtention de la semaine à l'heure, etc., ne sont pas aussi pratiques que de les stocker directement sous forme de données de type heure. Tant que vous êtes familier avec les fonctions temporelles d'Oracle, je pense que tout le monde aimera les données de type temps Oracle. Elles sont très flexibles et puissantes. Vous pouvez faire presque tout ce à quoi vous pouvez penser sur le temps - cela dépend de votre compréhension du temps Oracle. de fonctions

Tutoriel recommandé : "Tutoriel vidéo Oracle"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn