ホームページ >データベース >mysql チュートリアル >関数を使用して SQL Server の日付/時刻の書式設定をカスタマイズする方法

関数を使用して SQL Server の日付/時刻の書式設定をカスタマイズする方法

DDD
DDDオリジナル
2025-01-04 07:47:341004ブラウズ

How to Customize Date/Time Formatting in SQL Server Using a Function?

SQL Server でのカスタマイズされた日付/時刻の書式設定

SQL Server の世界では、特定の要件に合わせて日付と時刻を書式設定することができます。必須のタスク。これは、ユーザーフレンドリーまたは標準化された方法で表示する必要があるデータを扱う場合に特に当てはまります。そのような例の 1 つは、日時フィールドを、特定の書式設定規則に準拠した 2 つの追加フィールドに変換することです。

DDMMM フィールドと HHMMT フィールドの抽出

次の形式の日時フィールドを考えてみましょう。 「YYYY-MM-DD HH:MM:SS.S」。目的は、このフィールドから 2 つの新しいフィールドを抽出することです:

  • DDMMM: 10 月 12 日の「12OCT」など、「DDMMM」形式で日と月を表します。
  • HHMMT: の形式で時間を表示します「HHMMT」。「T」は午前の「A」、午後の「P」を表します。たとえば、午後 1 時 19 分は「0119P」と表されます。

関数ベースのアプローチ

この変換を効果的に達成するには、関数を利用します。ストアド プロシージャの代わりに推奨されます。これにより、柔軟性とコードの再利用性が向上します。

CREATE FUNCTION FormatDateTime (@DatetimeField DATETIME)
RETURNS VARCHAR(50)
BEGIN
    DECLARE @FormattedValue VARCHAR(50)

    SELECT @FormattedValue = DATENAME(DAY, @DatetimeField) + SUBSTRING(UPPER(DATENAME(MONTH, @DatetimeField)), 0, 4) + ' ' +
                            CASE WHEN DATENAME(HOUR, @DatetimeField) < 12 THEN 'A'
                                 ELSE 'P'
                            END
                            + RIGHT(CAST(DATENAME(HOUR, @DatetimeField) AS VARCHAR), 2)
                            + CAST(DATENAME(MINUTE, @DatetimeField) AS VARCHAR(2))

    RETURN @FormattedValue
END
GO

デモ

関数の機能をデモするには、次のクエリを検討してください:

SELECT FormatDateTime(GETDATE())

このクエリは、フォーマットされた日時を「14OCT 0119P」として返し、目的の条件を満たします。

結論

関数ベースのアプローチを採用し、DATENAME 関数を利用することにより、SQL Server でカスタマイズされた日付/時刻の書式設定を効率的に実現できました。これにより、特定のビジネス要件やユーザーの好みに合わせた形式でデータを抽出して表示できるようになります。さらに、日付操作に数値演算を使用すると、最適なパフォーマンスが保証されます。

以上が関数を使用して SQL Server の日付/時刻の書式設定をカスタマイズする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。