2017-09-19 13 views
-4

datetime9/9/2017 8:25:02 PMformatであり、SQLの出力はyyyy-MM-ddTHH:mm:ss.SSSSSSSZである必要があります。yyyy-MM-ddTHH:mm:ss.SSSSSSZ形式のSQLサーバー

またタイムゾーンを必要とするだけでなく様:-05:00又は+05:50

例えば dateTime2016-02-02T12:44:18.7832703Z timezone-06:00

+2

'DATETIME'には「フォーマット」がありません。それらを 'VARCHAR'として保存していますか?また、どのタイムゾーンに '+05:50'がありますか? – Siyual

+0

「SQL Serverの形式の日付」をすばやく検索すると、データから選択するときに値を変換して書式設定するためのオプションと例が表示されます。何を試しましたか? – David

+1

@Siyual私はどちらが+5:50か分からないが、奇妙なものがある。ニューファンドランドのように-3:30です。私の推測は、OPの平均:30とタイプされた:50時間半です。 :) –

答えて

0

タイムゾーンについて、あなたはのDateTimeOffsetとない日時を使用する必要があります。 、変換(VARCHAR(50)を選択し 、dateoff(DATETIMEOFFSETを含む列):あなたはたとえばSQL で定義済みの形式のいずれかを使用する必要があり、文字列の形式について

https://docs.microsoft.com/en-us/sql/t-sql/data-types/datetimeoffset-transact-sql

:マイクロソフトをチェック127)

+0

dateoffとはなんですか?これは有効なt-SQL関数ではありません。 –

+0

2011年2月2日12:44:18 PMを2016-02-02T12:44:18.7832703Zに変換する。 – vkase

0

は、あなたが見ることのJavaを試すことができます

のJava日付フォーマットにSQL Serverの日付フォーマットを変換する方法はありませんJava format yyyy-MM-dd'T'HH:mm:ss.SSSz to yyyy-mm-dd HH:mm:ss

可能であるSQLで最も近いTODATETIMEOFFSETを使用している、この関数の問題は、日付

DECLARE @Timezone int = Datediff(MINUTE, GETUTCDATE(),getdate()) 
SELECT CONVERT(datetimeoffset(0), TODATETIMEOFFSET (convert(datetime, '2/2/2017 12:44:18 PM'),@Timezone),127) [datetimeoffset(0)], Convert(varchar(50), 
TODATETIMEOFFSET (convert(datetime, '2/2/2017 12:44:18 PM'),@Timezone),127)[datetime] 


datetimeoffset(0)     datetime 
---------------------------------- -------------------------------------------------- 
2017-02-02 12:44:18 -04:00   2017-02-02T16:44:18Z 

TODATETIMEOFFSET (Transact-SQL)

AT TIME ZONE (Transact-SQL)

Date and Time Data Types and Functions (Transact-SQL)

のタイムゾーンを知っておく必要があるということです
+0

2011年2月2日12:44:18 PMを2016-02-02T12に変換する:44:18.7832703Z – vkase

+0

SQL Serverの日付形式をJavaの日付形式に変換する方法はありません –

関連する問題