sql >> データベース >  >> RDS >> Sqlserver

SQL ServerでのDATEPART()の例

    SQL Serverでは、T-SQL DATEPART() 関数は、指定された datepartを表す整数を返します 指定された日付 。たとえば、2021-01-07を渡すことができます SQL Serverに年の部分のみを返すようにします(2021

    時間部分を抽出することもできます。たとえば、2018-06-02 08:24:14.3112042を渡すことができます SQL Serverに1時間の部分のみを返すようにします(8

    以下の例。

    構文

    まず、構文。 DATEPART() 構文は次のようになります:

    DATEPART ( datepart , date )

    datepart dateの一部です (日付または時刻の値)整数が返されます。

    例1

    これは、日付から年のコンポーネントを返す基本的な例です。

    SELECT DATEPART(year, '2021-01-07') AS Result;

    結果:

    +----------+
    | Result   |
    |----------|
    | 2021     |
    +----------+

    例2

    この例では、変数に日付を割り当ててから、DATEPART()の複数のインスタンスを使用します。 その日付のさまざまな部分を取得します。

    DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
    SELECT 
        DATEPART(year, @date) AS Year,
        DATEPART(quarter, @date) AS Quarter,
        DATEPART(month, @date) AS Month,
        DATEPART(dayofyear, @date) AS 'Day of Year',
        DATEPART(day, @date) AS Day,
        DATEPART(week, @date) AS Week,
        DATEPART(weekday, @date) AS Weekday;

    結果:

    +--------+-----------+---------+---------------+-------+--------+-----------+
    | Year   | Quarter   | Month   | Day of Year   | Day   | Week   | Weekday   |
    |--------+-----------+---------+---------------+-------+--------+-----------|
    | 2018   | 2         | 6       | 153           | 2     | 22     | 7         |
    +--------+-----------+---------+---------------+-------+--------+-----------+

    例3

    日付からさまざまな時間部分を取得することもできます。

    DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
    SELECT 
        DATEPART(hour, @date) AS Hour,
        DATEPART(minute, @date) AS Minute,
        DATEPART(second, @date) AS Second,
        DATEPART(millisecond, @date) AS Millsecond,
        DATEPART(microsecond, @date) AS Microsecond,
        DATEPART(nanosecond, @date) AS Nanosecond;

    結果:

    +--------+----------+----------+--------------+---------------+--------------+
    | Hour   | Minute   | Second   | Millsecond   | Microsecond   | Nanosecond   |
    |--------+----------+----------+--------------+---------------+--------------|
    | 8      | 24       | 14       | 311          | 311204        | 311204200    |
    +--------+----------+----------+--------------+---------------+--------------+

    例4

    TZoffsetを取得することもできます およびISO_WEEK datepart。

    TZoffset 分数(符号付き)として返されます。 ISO_WEEK datepartは、週の番号付けシステムであるISO週-日付システム(ISO 8601標準の一部)を指します。

    DECLARE @date datetimeoffset = '2018-06-02 08:24:14.3112042 +08:00';
    SELECT 
        DATEPART(TZoffset, @date) AS 'Time Zone Offset',
        DATEPART(ISO_WEEK, @date) AS 'ISO_WEEK';

    結果:

    +--------------------+------------+
    | Time Zone Offset   | ISO_WEEK   |
    |--------------------+------------|
    | 480                | 22         |
    +--------------------+------------+

    この例では、日付をdatetimeoffsetに設定します。 タイムゾーンオフセットを含むフォーマット。 TZoffset 数分で返されます。

    クイックオルタナティブ

    T-SQLは、DAY()を使用して、日付から日、月、または年のコンポーネントを返すためのより簡潔な方法も提供します。 、MONTH() およびYEAR() 機能。

    これらは次のように機能します:

    DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
    SELECT 
        DAY(@date) AS DAY,
        MONTH(@date) AS MONTH,
        YEAR(@date) AS YEAR;
    

    結果:

    +-------+---------+--------+
    | DAY   | MONTH   | YEAR   |
    |-------+---------+--------|
    | 2     | 6       | 2018   |
    +-------+---------+--------+
    

    月の名前または日の名前の取得

    月の名前または日の名前を取得する必要がある場合は、DATENAME()を使用してください 代わりに機能します。この関数は結果を文字列として返し、月と曜日を名前で返すことができます。 DATENAME()をいくつかご紹介します。 私が何を意味するかを示す例。


    1. SQLite Python

    2. エンティティフレームワークは、コンパイルのたびに初めてロードするのが非常に遅い

    3. SQL ServerテーブルのINSERTステートメントを自動生成するための最良の方法は何ですか?

    4. MariaDBで接続の照合を表示する3つの方法