Bagaimana saya bisa mengonversi @dateb:
SET @dateb = dateadd(month, datediff(month, 0, getdate()) - 3, 0)
yang mengembalikan 2014-04-04
sebagai tanggal ke bilangan bulat dari201404
Terima kasih
Bagaimana saya bisa mengonversi @dateb:
SET @dateb = dateadd(month, datediff(month, 0, getdate()) - 3, 0)
yang mengembalikan 2014-04-04
sebagai tanggal ke bilangan bulat dari201404
Terima kasih
Jawaban:
Pada versi 2012 atau lebih tinggi, Anda dapat menggunakan format
fungsi ini untuk mendapatkan tahun dan bulan, lalu gunakan sebagai int.
Pada versi sebelum 2012 Anda dapat melakukan pemformatan dengan convert
fungsi tersebut, lalu dilemparkan sebagai int.
declare @dateb datetime
set @dateb = getdate()
select cast(format(@dateb,'yyyyMM') as int) --2012 or higher
select cast(convert(varchar(6),@dateb,112) as int) -- all versions
Mungkin sedikit lebih rapi:
SELECT YEAR(@dateb)*100 + MONTH(@dateb);
Bisakah ini melakukan trik untuk Anda?
set @dateb = cast(convert(varchar, dateadd(month, datediff(month, 0, getdate()) - 3, 0), 112) as int)
Ah maaf, saya lupa, Anda akan membutuhkan substring juga. Jadi begitu:
select cast(substring(convert(varchar, dateadd(month, datediff(month, 0, getdate()) - 3, 0), 112), 0, 7) as int)
Metode lain:
DECLARE @PeriodToCalculate_DATE [DATE] ='2016-02-29'
SELECT
CAST(DATEPART(YYYY,@PeriodToCalculate_DATE) AS [CHAR](4))
+ RIGHT('0' + CAST(DATEPART(M,@PeriodToCalculate_DATE) AS [VARCHAR](2)),2)
+ RIGHT('0' + CAST(DATEPART(D,@PeriodToCalculate_DATE) AS [VARCHAR](2)),2);
Memberi: 20160229
FORMAT()
, umumnya . YMMV.