SQLで現在の日時を取得する

SQL Serverでクエリで現在の日時を取得するコードを紹介します。

概要

現在の日時をクエリで取得するには GETDATE()関数、SYSDATETIME()関数を用います。

補足
一般的なSQL文では CURRENT_TIMESTAMP を利用する記述が汎用性が高いです。 詳しくはこちらの記事を参照してください。

書式

GETDATE()

関数の戻り値として、現在の日時を"yyyy-mm-dd HH:MM:ss.zzz"の形式で返します。


SYSDATETIME()

関数の戻り値として、現在の日時を"yyyy-mm-dd HH:MM:ss.zzzzzzz"の形式で返します。

例1

現在の時刻を問い合わせ、結果として取得します。

SQL

select GETDATE();

結果

2011-10-09 15:21:31.950

例2

テーブルのInsertDateTime列にレコードを挿入した時刻を記録します。

SQL

insert into DataTable (ProductName, Price, InsertDateTime)
  values('Penguin Candy', 250, GETDATE());
select * from DataTable;

結果

id, ProductName, Price, InsertDateTime
1, 'Penguin Candy', 250, 2011-10-08 18:16:41.250

例3

SYSDATETIME()で現在の時刻を問い合わせ、結果として取得します。

SQL

select SYSDATETIME();

結果

2025-05-31 09:45:09.8765332

補足

MySQLの場合はnow()関数を用います。

クエリ例

insert into DataTable (ProductName, Price, InsertDateTime)
  values('Penguin Candy', 250, now());

A.W.S (Another World Story)

SQLで現在の日時を取得する:画像1

赤提灯がほのかに揺れる路地裏の焼き鳥屋。炭火のぱちぱちという音と、甘辛いタレが焦げる匂いが夜気に溶け、 カウンターに座った二人のエンジニア——秋人と隼人——の頬をほろ酔いに染めていた。
七輪の奥で串が小さく弾けるたび、秋人はビールジョッキを掲げる。

「……でさ、ログに記録されたタイムスタンプがずれる原因、突き止めた?」
「タイムゾーンでもサーバークロックでもなく、ただの書き方ミスだったんだよ」
隼人がねぎまを齧りながら答える。「新人が日付を文字列で受けてから CAST してた」 

秋人は苦笑し、手元のスマホで SQL クライアントを開いた。
「やっぱり素直にサーバの“いま”を取れば早いよな」
「そう—―これよ」
隼人は指先で空中にキーを打つしぐさをする。

SELECT GETDATE();

ジョッキが触れ合い、泡が零れた。灰色の夜風がタレの甘さを攫い、代わりにわずかな潮の匂いを運んでくる。

「でも GETDATE() だけじゃ精度足りない場面もあるだろ?」秋人は砂肝を口に放り込む。
「高精度ならあっち——」隼人がもう一本の串を手に取る。
「SYSDATETIME()。ナノ秒単位で返してくれる。ANSI 方言がいいなら CURRENT_TIMESTAMP。ただし書式は同じ」

煙が二人の視界をゆらし、提灯の赤がにじむ。隼人は皿の上に並ぶ手羽先を横目に、手のひらでスマホをトントンと叩いた。

「けどさ、精度が高けりゃいいってもんじゃない」秋人が声を潜める。「恋愛でもプロジェクトでも、肝心なのは“いま”を逃さない判断力だろ?」
「なんだ急に哲学的だな」
「いや、ポエムじゃない。お前、あの営業の美咲さんに告白するタイミング、ミリ秒単位で逃したって言ってただろ?」
「やめろって!」隼人の顔が炭より赤くなる。「あれはサーバーが重かったんだ……たぶん」

マスターが新しい串を差し出す。「トロレバー、焼けましたよ」
ふわりと立ちのぼる香りに二人が顔をほころばせたその時、店の奥で古びた掛け時計がチクタクと鳴り、針が十一時を指した。終電まで、あとわずか。

「ラストオーダーになります」マスターの声。
秋人が慌ててスマホを手繰る。「やば、まだ一杯いけるか……?」
『SELECT SYSDATETIME();』——画面にナノ秒精度の時刻が浮かぶ。

隼人が苦笑して言う。「そんな高精度で測ったって、電車は待っちゃくれないぞ」
「確かに」秋人はスマホを伏せ、レバーを噛み締めた。「データベースの“いま”は取れても、俺たちの“いま”は逃げ足が早い」

カウンターの隣では背広姿のサラリーマンが会計を済ませるところだ。酔いにほころんだ横顔を見送りながら、隼人が唐突に立ち上がった。

「よし、ダッシュだ。GETDATE() は秒単位、俺らの脚は分単位!」
「それ、分かるようで分からんたとえだな」秋人も財布を掴む。

レジ前へ駆け、合計金額を見て二人同時に息を呑む。
「思ったより食ったな……」
「精度の高い請求だ」

店を飛び出し、提灯の下で秋人が振り返る。
「なあ隼人。告白、いまからでも間に合うんじゃね?」
「無理無理。美咲さん、もう帰宅してるって」
「帰宅してる時間を、さっき SYSDATETIME() で確認したのか?」
「……してない」

駅へ向かう坂道。路面に伸びる影が街灯の下で重なる。秋人はポケットからスマホを取り出し、ふと呟いた。
「やっぱりさ——恋も電車も、CURRENT_TIMESTAMP じゃなくて、CURRENT_GUTS が要るんだよ」

隼人が吹き出す。「それ関数じゃねえ!」

その瞬間、二人の背後で遠ざかる店の掛け時計がぽーんと鳴った。
終電の発車ベルが重なり、夜風が串の匂いを拾って流していく。

ホームへ飛び込んだとき、電車のドアはまだ開いていた。秋人が息を切らしながら笑う。
「ほらな、秒じゃなく“心臓の鼓動”単位で間に合ったろ?」
隼人も笑い返す。
「すげえ精度だよ、俺たちのラストセレクト」

ドアが閉まり、車両がゆっくりと動き出す。窓の外で赤提灯が小さく揺れ、煙が夜空に溶けて、二人の笑い声だけが線路の上を走った。

このページのキーワード
  • SQL Server 現在の日時
AuthorPortraitAlt
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
作成日: 2011-10-09
Copyright © 1995–2025 iPentec all rights reserverd.