Comment obtenir la date et l'heure actuelles en SQL?
Jul 02, 2025 am 01:16 AM在 SQL 中獲取當(dāng)前日期和時(shí)間的方法因數(shù)據(jù)庫(kù)系統(tǒng)而異,常見方式如下:1. MySQL 和 MariaDB 使用 NOW() 或 CURRENT_TIMESTAMP,可用于查詢、插入及設(shè)置默認(rèn)值;2. PostgreSQL 使用 NOW(),也可用 CURRENT_TIMESTAMP 或類型轉(zhuǎn)換去除時(shí)區(qū);3. SQL Server 使用 GETDATE() 或 SYSDATETIME(),支持插入和默認(rèn)值設(shè)定;4. Oracle 使用 SYSDATE 或 SYSTIMESTAMP,需注意日期格式轉(zhuǎn)換。掌握這些函數(shù)可在不同數(shù)據(jù)庫(kù)中靈活處理時(shí)間相關(guān)操作。
獲取當(dāng)前日期和時(shí)間在 SQL 中是一個(gè)常見的需求,比如用于記錄數(shù)據(jù)插入時(shí)間、篩選最近的數(shù)據(jù)等。不同數(shù)據(jù)庫(kù)系統(tǒng)語法略有不同,但基本都能用類似函數(shù)實(shí)現(xiàn)。

MySQL 和 MariaDB:使用 NOW() 或 CURRENT_TIMESTAMP
在 MySQL 或 MariaDB 中,最常用的方式是使用 NOW()
函數(shù):

SELECT NOW();
這個(gè)語句會(huì)返回當(dāng)前的日期和時(shí)間,格式通常是 YYYY-MM-DD HH:MM:SS
。你也可以在插入數(shù)據(jù)時(shí)直接使用它:
INSERT INTO my_table (created_at) VALUES (NOW());
另一個(gè)替代方法是 CURRENT_TIMESTAMP
,它的使用方式類似,有時(shí)候在定義表結(jié)構(gòu)時(shí)會(huì)用到默認(rèn)值設(shè)置:

CREATE TABLE my_table ( id INT PRIMARY KEY, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
PostgreSQL:使用 NOW()
PostgreSQL 也支持 NOW()
函數(shù)來獲取當(dāng)前時(shí)間戳:
SELECT NOW();
返回的結(jié)果包括時(shí)區(qū)信息,如果你只想要不帶時(shí)區(qū)的時(shí)間,可以使用:
SELECT CURRENT_TIMESTAMP;
或者使用類型轉(zhuǎn)換去掉時(shí)區(qū)部分:
SELECT NOW()::TIMESTAMP;
在實(shí)際開發(fā)中,根據(jù)是否需要考慮時(shí)區(qū)來決定具體用哪個(gè)函數(shù)。
SQL Server:使用 GETDATE() 或 SYSDATETIME()
在 SQL Server 中,獲取當(dāng)前時(shí)間的標(biāo)準(zhǔn)函數(shù)是 GETDATE()
:
SELECT GETDATE();
它返回的是 datetime 類型,精度到毫秒。如果你需要更高精度的時(shí)間(例如納秒級(jí)),可以用:
SELECT SYSDATETIME();
這兩個(gè)函數(shù)都可以在插入或更新數(shù)據(jù)時(shí)使用:
插入當(dāng)前時(shí)間:
INSERT INTO my_table (log_time) VALUES (GETDATE());
設(shè)置默認(rèn)值:
ALTER TABLE my_table ADD CONSTRAINT DF_my_table_log_time DEFAULT GETDATE() FOR log_time;
Oracle:使用 SYSDATE 和 SYSTIMESTAMP
Oracle 使用 SYSDATE
獲取當(dāng)前日期和時(shí)間:
SELECT SYSDATE FROM dual;
如果你想獲得更高的精度(包括時(shí)區(qū)信息),可以使用:
SELECT SYSTIMESTAMP FROM dual;
Oracle 的時(shí)間處理比較嚴(yán)格,注意日期類型不同時(shí)可能需要顯式轉(zhuǎn)換,比如使用 TO_CHAR()
轉(zhuǎn)換為字符串格式輸出。
基本上就這些常見數(shù)據(jù)庫(kù)中的做法了。雖然寫法不同,但目的都是一樣的:拿到當(dāng)前的時(shí)間點(diǎn)。只要記住不同數(shù)據(jù)庫(kù)的關(guān)鍵函數(shù),就能靈活應(yīng)用在查詢、插入和邏輯判斷中。
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le fait d'utiliser des sous-requêtes ou des connexions dépend du scénario spécifique. 1. Lorsqu'il est nécessaire de filtrer les données à l'avance, les sous-requêtes sont plus efficaces, comme trouver des clients de commande d'aujourd'hui; 2. Lors de la fusion des ensembles de données à grande échelle, l'efficacité de connexion est plus élevée, comme l'obtention des clients et leurs commandes récentes; 3. Lors de l'écriture de logique très lisible, la structure des sous-requêtes est plus claire, comme trouver des produits à chaud; 4. Lors de la réalisation de mises à jour ou de la suppression des opérations qui dépendent des données connexes, les sous-requêtes sont la solution préférée, comme la suppression des utilisateurs qui n'ont pas été connectés depuis longtemps.

La différence de base entre les bases de données SQL et NOSQL est la structure des données, la méthode de mise à l'échelle et le modèle de cohérence. 1. En termes de structure de données, SQL utilise des modèles prédéfinis pour stocker des données structurées, tandis que le NOSQL prend en charge des formats flexibles tels que les documents, les valeurs de clés, les familles de colonnes et les graphiques pour traiter les données non structurées; 2. En termes d'évolutivité, SQL s'appuie généralement sur un matériel plus fort sur l'expansion verticale, tandis que le NOSQL réalise l'expansion distribuée par l'expansion horizontale; 3. En termes de cohérence, SQL suit l'acide pour assurer une forte cohérence et convient aux systèmes financiers, tandis que le NOSQL utilise principalement des modèles de base pour souligner la disponibilité et la cohérence finale; 4. En termes de langage de requête, SQL fournit des capacités de requête standardisées et puissantes, tandis que les langages de requête NOSQL sont diverses mais pas aussi matures et unifiées que SQL.

AcompositEpriMaryKeyInSqlisapriMaryKeyComposéSoftwoOrMoreColumnSTHATOTETHETHEUNICELYIFYSIFYEACHROW.1.ITUSED WHONNELAGELCOLUMNCANENSURINGROWUNESS

Il existe trois méthodes de base pour trouver le deuxième salaire le plus élevé: 1. Utilisez la limite et le décalage pour ignorer le salaire maximal et obtenir le maximum, ce qui convient aux petits systèmes; 2. Exclure la valeur maximale par le biais de sous-requêtes, puis trouvez max, qui est hautement compatible et adapté aux requêtes complexes; 3. Utilisez la fonction de la fenêtre dense_rank ou row_number pour traiter les classements parallèles, ce qui est très évolutif. De plus, il est nécessaire de combiner ifnull ou de fusionner pour faire face à l'absence d'un deuxième salaire le plus élevé.

Vous pouvez utiliser l'instruction CreateTable de SQL et sélectionner la clause pour créer une table avec la même structure qu'un autre tableau. Les étapes spécifiques sont les suivantes: 1. Créez une table vide à l'aide de CreateTableNew_TableasSelect * fromexisting_tablewhere1 = 0;. 2. Ajouter manuellement les indices, les clés étrangères, les déclencheurs, etc. lorsque cela est nécessaire pour s'assurer que la nouvelle table est intacte et cohérente avec la structure de table d'origine.

Les fonctions de fenêtre SQL peuvent effectuer des calculs efficaces sans réduire le nombre de lignes. Il effectue des opérations telles que le classement, le résumé, le regroupement des statistiques sur les données via la fenêtre définie par over (). Les fonctions communes incluent: 1. Row_number (), rank (), dense_rank () Pour le classement, la différence est un traitement de valeur répété; 2. Fonctions agrégées telles que SUM () et AVG () Implémentez les statistiques de roulement; 3. Utilisez la partition de groupe pour grouper par dimension, commandes de contr?le de contr?le et contr?les de la plage de trame Taille de la fenêtre. Les fonctions de fenêtre de ma?trise peuvent remplacer efficacement les sous-requêtes complexes et améliorer l'efficacité et la lisibilité de la requête.

MySQL prend en charge Regexp et RLIGHT; PostgreSQL utilise des opérateurs tels que ~ et ~ *; Oracle est implémenté via regexp_like; SQLServer nécessite une intégration ou une simulation CLR. 2. Utilisé régulièrement pour faire correspondre les bo?tes aux lettres (comme WhereMailRegexp '^ [a-za-z0-9 ._% -] @ [a-za-z0-9.-] \. Regexp_like (nom d'utilisateur, '[0-9]')). 3. Faites attention aux problèmes de performance,

Filtrage des enregistrements de valeur nul dans SQL ne peut pas utiliser = null ou! = Null, 1. ISNULL ou ISNOTNULL doit être utilisé; 2. Par exemple, les utilisateurs qui recherchent des colonnes de messagerie NULL doivent écrire SELECT * FROMUSERSWORDEMAILISNULL; 3. Les champs multiples peuvent déterminer simultanément que plusieurs conditions ISNULL peuvent être combinées, telles que ou ou et la connexion; 4. Coalesce peut remplacer les valeurs nuls pour l'affichage ou le traitement par défaut, mais ne s'appliquent pas au filtrage. Parce que NULL représente une valeur inconnue et ne participe pas à l'opération de comparaison de l'égalité ou non égal, = NULL ne renverra pas le résultat et ne rapportera pas d'erreur. La clause où accepte uniquement les vraies lignes, ignore false et unk
