0

変換しようとしている列がいくつかありますが、ここでいくつかの問題が発生しています。

問題は、月または日が 1 桁になる可能性があること0です。

変換を行う前に最初にビューで試していますが、3 つの列を取得してこのような文字列を取得することさえできません20090517

何か案は?CAST私のためにそれをしてRIGHTいないようです。

4

3 に答える 3

2

DATEADD を使用できます

DECLARE @YEAR int
DECLARE @MONTH int
DECLARE @DAY int

SET @YEAR = 2013
SET @MONTH = 5
SET @DAY = 20


SELECT CONVERT(DATE,
 DATEADD(yy, @YEAR -1900, DATEADD(mm, @MONTH -1 ,DATEADD(dd, @DAY -1, 0))))

結果は2013-05-20

SELECT コマンドの変数をテーブル内の変数に置き換えることができます。

于 2013-05-20T22:24:55.770 に答える
1

あるいは

DECLARE @YEAR int
DECLARE @MONTH int
DECLARE @DAY int

SET @YEAR = 2013
SET @MONTH = 5
SET @DAY = 20

SELECT RIGHT('0000'+ CONVERT(VARCHAR,@Year),4) + RIGHT('00'+ CONVERT(VARCHAR,@Month),2) + RIGHT('00'+ CONVERT(VARCHAR,@Day),2)

与える

20130520
于 2013-05-20T22:32:29.803 に答える