I converted some string values to datetime
as below:
'20131018'
'20130917'
by using
CONVERT(DATETIME, @date, 101)
I got the following
'2013-10-18 00:00:00.000'
'2013-09-17 00:00:00.000'
How would I remove the timepart of the values?
I converted some string values to datetime
as below:
'20131018'
'20130917'
by using
CONVERT(DATETIME, @date, 101)
I got the following
'2013-10-18 00:00:00.000'
'2013-09-17 00:00:00.000'
How would I remove the timepart of the values?
私が作ったいくつかのコードがあります。これをより速くまたはより良くする方法を理解できる場合は、私に知らせてください! ;)
case --Format date into YYYYMMDD with placeholder 0's
when (CAST(DATEPART(DD,DATEADD(day, 7, <DATE>)) as int ) < 10) AND (CAST(DATEPART(MM,DATEADD(day, 7, <DATE>)) as int) < 10)
then CAST(DATEPART(YYYY,DATEADD(day, 7, <DATE>)) as CHAR(4))
+'0'+ LTRIM(RTRIM(CAST(DATEPART(MM,DATEADD(day, 7, <DATE>)) as CHAR(2))))
+'0'+LTRIM(RTRIM(CAST(DATEPART(DD,DATEADD(day, 7, <DATE>)) as CHAR(2))))
when (CAST(DATEPART(MM,DATEADD(day, 7, <DATE>)) as int) < 10)
then CAST(DATEPART(YYYY,DATEADD(day, 7, <DATE>)) as CHAR(4))
+'0'+LTRIM(RTRIM(CAST(DATEPART(MM,DATEADD(day, 7, <DATE>)) as CHAR(2))))
+CAST(DATEPART(DD,DATEADD(day, 7, <DATE>)) as CHAR(2))
when (CAST(DATEPART(DD, DATEADD(day, 7, <DATE>)) as int ) < 10)
then CAST(DATEPART(YYYY,DATEADD(day, 7, <DATE>)) as CHAR(4))
+ CAST(DATEPART(MM,DATEADD(day, 7, <DATE>)) as CHAR(2))
+'0'+LTRIM(RTRIM(CAST(DATEPART(DD,DATEADD(day, 7, <DATE>)) as CHAR(2))))
else CAST(DATEPART(YYYY,DATEADD(day, 7, <DATE>)) as CHAR(4))
+CAST(DATEPART(MM,DATEADD(day, 7, <DATE>)) as CHAR(2))
+CAST(DATEPART(DD,DATEADD(day, 7, <DATE>)) as CHAR(2))
end
仕組みは次のとおりです。それをSELECTの後に置きます。検索と置換を行い、そこに日付を入れます。月と日の桁数をチェックし、必要に応じて文字列に 0 または 2 を挿入します。この問題が発生したときに簡単に使用できるように、このコード ブロックを保存しました。それが役に立てば幸い!
--編集-- 私には、これはあなたがやりたいことの逆かもしれません...
SUBSTRING ( expression ,start , length ) ここで、expression はタイムスタンプ文字列、start は 1、length は「yyyy-mm-dd」の長さ、つまり 10 になります。詳細については、http://technet.microsoft.comを確認してください。 /en-us/library/ms187748.aspx
「marc_s」の発言を確認してください。DATETIME の代わりに DATE を使用してください。これはより適切なオプションです。