こんにちは。事業推進チームです。

データベース検索・更新ツールSkyLinkは、通常データベースに接続してデータの検索を行いますが、接続するデータベースによってはデータベース関数(SQL関数)と呼ばれる、あるまとまった処理を簡単に実行する仕組みが用意されています。

一般的な値の合計や平均を求めるといった処理以外にも文字列の結合や抽出といった処理もあり、使いこなせれば業務の効率化に役立ちます。

そこで今回は、SQL Serverで使える日付に関するデータベース関数をご紹介します。同様の関数は、OracleやMySQLなどにも用意されています。

DATEPART関数

構文

DATEPART ( datepart , date )

DATEPART関数は、指定された date の指定された datepart を表す整数を返します。

Microsoft Learn DATEPART (Transact-SQL)

上記の説明だけでは分かりにくいのでもう少しかみ砕いてみます。datepartで日付の要素を指定して、dateに確認したい日付を指定することで日付の要素に対応した数値が戻ってくるというものになります。

例えば、今日が何曜日であるか知りたい場合

DATEPART(WEEKDAY,GETDATE())

とすることで、各曜日に対応した数値が取得できます。
(GETDATEは現在日時を取得する関数です)

曜日と数値の対応は以下のようになります。

曜日
日曜日 1
月曜日 2
火曜日 3
水曜日 4
木曜日 5
金曜日 6
土曜日 7

使用例

では、SkyLinkでDATEPARTを使った例を見てみましょう。
今回は商品の売上を年度の四半期ごとに合計したクロス集計表を作成してみました。このデータベースには受注日の項目はありますが、四半期を分類する項目はありません。そこで、受注日から四半期を特定するためにDATEPARTを使用します。




検索を実行すると四半期別の受注データが取得できます。



今回の例では、結果が分かりやすいように検索結果をExcelに出力しクロス集計表とグラフを作成しています。



まとめ

今回は、四半期を戻り値とした例でしたが、DATEPARTでは他にも”年の何日目”や”年の第何週”であるかといった要素を指定することができます。これらを活用することで日付に関する処理を効率化できるのではないでしょうか。

SkyLinkについての疑問点やご質問等ございましたらお気軽にお問い合わせください。体験版・体験サイトのご用意もございます。またPowerBIと組み合わせたデータ活用ソリューションの提供も行っております。