1. ホーム
  2. String

sql 日付形式変換関数_SQL 日付変換

2022-02-17 03:45:28

sql 日付形式変換関数

はじめに ( はじめに )

初心者のための共通のタスクは、SQLの変換日付を行う方法を学び、他のデータ型にそれらの日付を変換したり、日付に他のデータ型を隠蔽するために動作することです。

初心者のための一般的なタスクは、SQL変換の日付とそれらを他のデータ型に変換する作業を実行する方法を学ぶことですまたは日付に他のデータ型を隠蔽する。

この記事では、日付を異なるフォーマットに変換する方法と、その逆を行う方法を説明します。

この記事では、日付を異なるフォーマットに変換する方法について説明します。

必要条件 ( 必要条件 <スパン )

  1. SQL Serverがインストールされていること。SQL Server 2008から

    SQL Serverをインストールしました。SQL Server 2008で起動します。

( )

最初の例は簡単で、テーブルの中に日付の入ったvarcharカラムがありますが、varcharを日付に変換する必要があります。

最初の例は簡単で、テーブルの中で日付のあるvarcharカラムがありますが、varcharを日付に変換する必要があります。我々は、SQLの変換日付を行う必要があります。

ここでは、データを含むテーブルを作成するスクリプトです。

データを含むテーブルを作成するスクリプトです。

CREATE TABLE [dbo]. [delivers](
  [productid] [tinyint] NOT NULL,
  [date] [nvarchar](100) NULL,
 CONSTRAINT [PK_delivers] PRIMARY KEY CLUSTERED 
(
  [productid] ASC
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
INSERT [dbo]. [delivers] ([productid], [date]) VALUES (1, N'02-03-2005')
INSERT [dbo]. [delivers] ([productid], [date]) VALUES (2, N'03-05-2006')
INSERT [dbo]. [delivers] ([productid], [date]) VALUES (3, N'04-05-2011')


カラムdateをnvarchar(100)から日付に変換したい。

日付の列をnvarchar(100)から日付に変換したいのですが。

そのために、テーブルの設計を変更してみることにします。

そのために、テーブルのデザインを変更することを試みます。

Data Typeをsmalldatetimeに変更してみます。

Data Typeをsmalldatetimeに変更してみる。

以下のエラーメッセージが表示されます。

以下のエラーメッセージが表示されます。

変更の保存は許可されていません。あなたが行った変更により、以下のテーブルを削除して再作成する必要があります。再作成できないテーブルに変更を加えたか、テーブルの再作成を必要とする変更を保存しないオプションを有効にしたかのどちらかです。

変更の保存を許可しない。 あなたが行った変更により、以下のテーブルを削除し、再作成する必要があります。 再作成できないテーブルに変更を加えたか、または "テーブルの再作成を必要とする変更を保存しない" オプションを有効にした場合です。

このエラーを解決するには、SSMSで次のようにします。 ツール > オプション のメニューになります。

このエラーを解決するには、SSMSの"に移動してください。 ツール" >" オプション" メニューです。

オプションで デザイナー >テーブルとデータベースデザイナー をクリックし、[テーブルの再作成が必要な変更を保存しない]のチェックを外してください。

オプションで Designer> Table and Database Designer。 次に、テーブルの再作成を必要とする変更を保存するブロックのチェックボックスをオフにします。

このオプションは、テーブルの再作成を保存しないようにするためのオプションに無効化します。カラムのデータ型を変更した場合、テーブルの再作成が必要になります。

このオプションを使用すると、テーブルの再作成を保存しないようにするオプションが無効になります。カラムのデータ型を変更した場合、テーブルの再作成が必要です。

これで、デザインを保存すれば、テーブルが日付に変換され、SQL変換の日付が完了します。

これで、デザインを保存すれば、テーブルが日付に変換され、SQL変換の日付が完成します。

変換機能 ( 変換関数 )

T-SQLには、データ型を変換するための関数があります。ここでは、CASTとCONVERTを使用してSQLの日付変換を行います。

T-SQLにはデータ型を変換するための関数が含まれています。CASTとCONVERTを使用して、SQLの日付変換を行います。

まず、CASTから始めましょう。

まず、CASTから始めましょう。

CAST を使用して varchar、nvarchar、char、nchar を sql の日付に変換する方法 ( CASTを使用してvarchar、nvarchar、char、ncharからsqlの日付に変換する方法 )

次の例では、CAST 関数を使用して文字を日付型に変換する方法を示します。

次の例は、CAST 関数を使用して文字を日付型に変換する方法を示しています。

declare @vardate varchar(100)='03-04-2016'
select CAST(@vardate AS datetime) AS dataconverted;


この例では、vardateという変数を宣言し、varcharであるこの変数をCAST関数を使ってdatetimeに変換しています。

この例では、vardate という名前の変数を宣言し、CAST 関数を使用してその変数 varchar を datetime に変換しています。

注意 CAST関数の詳細については、こちらを参照してください。 CAST と CONVERT (Transact-SQL)

注意事項 CAST関数の詳細については、以下のリンクをご参照ください。 CAST と CONVERT (Transact-SQL)

SQLでCONVERTを使用してvarchar、nvarchar、char、ncharから日付を変換する方法 ( どのようにSQLはvarchar、nvarchar、char、ncharから日付にCONVERTを使用して変換日付を行うには )

CONVERTは、前のシナリオのCASTと同じことをすることができる関数です。

CONVERTは、前のシナリオのCASTと同じことができる関数です。

declare @vardate varchar(100)='03-04-2016'
select CONVERT(datetime, @vardate) as dataconverted


T-SQLコードはキャストと同じですが、CONVERT関数を使用しています。 スタイル引数を使用しています。

T-SQLのコードは強制変換と同じことをしますが、CONVERT関数を使用しています。CONVERTの利点は、style引数を使って簡単に日付の書式を変更できることです。

例えば、ISO形式の日付にしたい場合、以下のようなT-SQL文が使えます。

例えば、ISO形式の日付が必要な場合、次のようなT-SQL文が使えます。

select CONVERT(nvarchar(30),getdate(), 121) as isoformat


T-SQLでSQLの日付を別の書式に変換する方法 ( T-SQLでsqlの日付を異なる形式に変換する方法 )

次の例は、日付の書式を異なる書式に変換する方法です。

次の例は、異なるフォーマットで日付フォーマットを変換する方法を示しています。

Japananes形式の場合。

Japananesフォーマット用。

select CONVERT(nvarchar(30),getdate(), 111) as Japanformat


USAフォーマット用。

USAフォーマット用。

select CONVERT(nvarchar(30),getdate(), 110) as USAformat


ANSIフォーマット用。

ANSI形式の場合。

select CONVERT(nvarchar(30),getdate(), 102) as ANSIformat


英国式フォーマットの場合。

英国式の場合。

select CONVERT(nvarchar(30),getdate(), 103) as Britishformat


ドイツ語形式の場合。

ドイツ語の場合。

select CONVERT(nvarchar(30),getdate(), 104) as Germanformat


イタリア語形式の場合。

イタリア語の場合。

select CONVERT(nvarchar(30),getdate(), 105) as Italianformat


ヨーロッパのデフォルトフォーマットの場合。

ヨーロッパのデフォルトフォーマットの場合。

select CONVERT(nvarchar(30),getdate(), 113) as EuropeDefaultformat


ODBC Canonicalの場合。

ODBC Canonicalの場合。

select CONVERT(nvarchar(30),getdate(), 120) as ODBCCanonicalformat


FORMAT関数を使えば、いつでも好きな書式で日付を取得することができます。

FORMAT関数を使えば、いつでも好きなフォーマットで日付を取得することができます。

SELECT FORMAT( getdate(), 'dd/MM/yy')


FORMATは、スタイルを知る必要がないため、日付を扱いやすく、好みのフォーマットを使うことができます。しかし、私の経験では、CAST関数やCONVERT関数を使ったコードを多く見かけますので、これらの関数を知っておくとよいでしょう。

FORMATは、スタイルを知る必要がないので、日付を扱ったり、好みの書式を使ったりするのが簡単です。しかし、私の経験では、CAST関数とCONVERT関数を使ったコードをたくさん見てきましたので、それらを知っておく方が良いでしょう。

注意 FORMAT関数の詳細については、こちらを参照してください。 FORMAT (トランザクト SQL)

注意事項 FORMAT関数の詳細については、以下のリンクを参照してください。 FORMAT (トランザクト SQL)

SQL変換の日付操作に関する問題 ( SQL変換の日付操作に関する問題点 )

日付に変換しようとすると、常に可能とは限りません。次の例は、よくあるエラーです。

日付に変換しようとすると、常に可能とは限りません。次の例は、よくあるエラーです。

declare @vardate varchar(100)='11242016'
select CONVERT(datetime, @vardate) as dataconverted


エラーメッセージは以下の通りです。

エラーメッセージは以下の通りです。

Msg 242, Level 16, State 3, Line 22

メッセージ242、レベル16、ステート3、22行目

varchar データ型から datetime データ型への変換で、範囲外の値が発生しました。

varchar データ型から datetime データ型に変換すると、範囲外の値が発生しました。

日付には、"/", ".", "-" のようなセパレータが必要です。

日付には、"/", ".", "-" のようなセパレータが必要です。

次の例では、文字列を11242016から11-24-2016に変更し、SQLの日付に変換しています。

次の例では、文字列を 11242016 から 11-24-2016 に変更し、SQL 日付に変換しています。

declare @vardate varchar(100)='11242016'
 
set @vardate= SUBSTRING(@vardate, 1, 2)+'-'+ SUBSTRING(@vardate, 3, 2)+'-'+SUBSTRING(@vardate, 5, 4)
 
select CONVERT(date, @vardate) as dataconverted


Substringを使って"-"を連結し、許容できる日付形式を使用し、CONVERT関数を使って文字をSQLの日付に変換しているのです。

Substringを使用して"-"を連結し、許容される日付形式を使用し、CONVERT関数で文字をSQLの日付に変換しているのです。

日付データ型 <スパン ( 日付データ型 )

SQL Server では、いくつかのタイプの日付データ型があります。

SQL Server では、いくつかのタイプの日付データ型があります。

  • 時刻は、時、分、秒、ナノ秒(hh:mm:ss.nnnnn)を返します。

    時間は、時、分、秒、ナノ秒(hh:mm:ss.nnnnn)を返します。
  • 日付は、年、月、日(yyyy-mm-dd)を返します。

    日付は、年、月、日(yyyy-mm-dd)を返します。
  • Datetimeは、このフォーマットでデータを返します。YYYY-MM-DD hh:mm:ss[.nnn] のようなフォーマットでデータを返します。

    Datetimeはこのようなフォーマットでデータを返します。YYYY-MM-DD hh:mm:ss [.nnn] この書式でデータを返します。
  • Smalldatetimeは、このフォーマットで日付を返します。YYYY-MM-DD hh:mm:ss。

    Smalldatetime は、このフォーマットで日付を返します。YYYY-MM-DD hh:mm:ss。
  • Datetime2はDatetimeと似ていますが、より精度が高いです(YYYY-MM-DD hh:mm:ss[.nnnnnn] )。

    Datetime2 は Datetime と似ていますが、より正確です (YYYY-MM-DD hh:mm:ss [.nnnnnn])。
  • Datetimeoffset datetime2の精度を持ちますが、UTCのタイムゾーンに使用されます。

    Datetimeoffset datetime2の精度を持ちますが、UTCのタイムゾーンに使用されます。

SQLで日付を整数に変換する ( SQLで日付を整数に変換する )

CONVERTやCASTでdatetimeを整数に変換すると、1900年から指定された日までの日数が返されます。

CONVERTまたはCASTを使用してdatetimeを整数に変換すると、1900年から指定された日までの日数が返されます。

例えば、次のT-SQLコードは、1900年から今日までの日数を表示します。

例えば、次のT-SQLコードは、1900年から今日までの日数を表示します。

SELECT CONVERT(INT, GETDATE())


また、datetimeの値の年、月、日などを整数に変換することができます。次のコードは、datetime 値の日、月、年を整数変数に格納する方法を示しています。

また、datetime 値の年、月、日などを整数に変換することもできます。次のコードは、datetime値のday, month, yearを整数変数に格納する方法を示しています。

declare @year int = year(getdate())
 
declare @month int = month(getdate())
declare @day int = day(getdate())
select @year as year,@month as month,@day as day


SQL ServerにおけるSQL変換日に関するよくある質問 ( SQL ServerにおけるSQLの日付変換に関するよくある質問 )

次のリンクは、SQL Server の関数と日付に関する FAQ を含んでいます。 SQL Server の日付に関する FAQ

注意事項 次のリンクは、SQL Server の機能と日付に関する情報を含んでいます。 よくある質問 : SQL Server の日付に関するよくある質問

結論 ( 結論 )

今回は、SQL ServerでSQL変換の日付を行う方法を学びました。テーブルのデータ型を変更する方法、CAST、CONVERT、FORMATの使用方法、SQLデータ型の種類についても学習しました。

今回は、SQL ServerでSQL変換の日付を実行する方法を学びました。テーブルのデータ型を変更する方法と、CAST、CONVERT、FORMAT関数の使い方を学びました。また、SQLのデータ型の種類についても学びました。

<ブロッククオート

Translated from : https://www.sqlshack.com/sql-convert-date/

sql 日付形式変換関数