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

SQL ServerでのDATENAME()の例

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

    DATENAME()の戻りタイプ nvarcharです 。

    以下の例。

    構文

    DATENAME() 構文は次のようになります:

    DATENAME ( datepart , date )

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

    例1

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

    SELECT DATENAME(month, '2021-01-07') AS Result;

    結果:

    +----------+
    | Result   |
    |----------|
    | January  |
    +----------+

    例2

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

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

    結果:

    +--------+-----------+---------+---------------+-------+--------+-----------+
    | Year   | Quarter   | Month   | Day of Year   | Day   | Week   | Weekday   |
    |--------+-----------+---------+---------------+-------+--------+-----------|
    | 2018   | 2         | June    | 153           | 2     | 22     | Saturday  |
    +--------+-----------+---------+---------------+-------+--------+-----------+

    例3

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

    DECLARE @date datetime2 = '2018-06-02 08:24:14.3112042';
    SELECT 
        DATENAME(hour, @date) AS Hour,
        DATENAME(minute, @date) AS Minute,
        DATENAME(second, @date) AS Second,
        DATENAME(millisecond, @date) AS Millsecond,
        DATENAME(microsecond, @date) AS Microsecond,
        DATENAME(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 
        DATENAME(TZoffset, @date) AS 'Time Zone Offset',
        DATENAME(ISO_WEEK, @date) AS 'ISO_WEEK';

    結果:

    +--------------------+------------+
    | Time Zone Offset   | ISO_WEEK   |
    |--------------------+------------|
    | +08:00             | 22         |
    +--------------------+------------+

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

    DATENAME()の結果 多くの場合、DATEPART()の結果に似ています。 (ほとんどの日付部分が数値であるため)。ただし、DATEPART() 文字列ではなく整数を返します。したがって、DATEPART() 月(および平日コンポーネント)を数値形式で返します(例:1 Januaryの代わりに 。

    短い月の名前を取得する

    月の名前が必要であるが、短縮された3文字の省略形(たとえば、Jan)が必要な場合 Januaryの代わりに )、SQLServerで日付から短い月の名前を取得する5つの方法に関する私の記事を確認してください。


    1. Node.js MSSQL tedius ConnectionError:localhost:1433への接続に失敗しました-ECONNREFUSEDに接続します

    2. SQLServerでEXISTS論理演算子を使用する方法-SQLServer/TSQLチュートリアルパート125

    3. OracleSQLの日付との比較

    4. カンマ区切り値を格納する列値の値を検索します