समय में मिलीसेकंड के साथ SQL सर्वर में GETDATE () कैसे प्रिंट करें?


91

मैं SQL Server 2008 में GETDATE () प्रिंट करना चाहता हूं , मुझे मिलीसेकंड के साथ समय चाहिए (यह डीबगिंग उद्देश्य के लिए है - सपा के निष्पादन समय को खोजने के लिए)

मुझे यह अंतर लगता है

  • SELECT GETDATE()रिटर्न 2011-03-15 18: 43: 44.100
  • print GETDATE()रिटर्न 15 मार्च 2011 6:44 अपराह्न

मुझे लगता है कि SQL सर्वर स्वचालित रूप से प्रिंट कार्यक्षमता में टाइपकास्ट करता है।

मुझे इस तरह की तारीख छापने की जरूरत है 2011-03-15 18:43:44.100

आपकी सहायता के लिए धन्यवाद।

जवाबों:


110

SYSDATETIME()यदि आप अधिक सटीक खोज रहे हैं , तो सबसे पहले, आपको संभवतः उपयोग करना चाहिए ।

अपने डेटा को मिलीसेकंड के साथ प्रारूपित करने के लिए, प्रयास करें CONVERT(varchar, SYSDATETIME(), 121)।

अन्य प्रारूपों के लिए, MSDN पृष्ठ पर CASTऔर देखेंCONVERT ।


3
CAST (GETDATE () को Datetime2 (7) के रूप में प्रिंट करें) यह बहुत काम करता है, आपके उत्तर के लिए धन्यवाद।
— रामकृष्णन

2
प्रिंट कैस्ट (SYSDATETIME () AS NVARCHAR (200)) एक आकर्षण की तरह काम करता है
— गेब्रियल एस्पिनोजा


29

यदि आपका SQL सर्वर संस्करण फ़ंक्शन का समर्थन करता है तो आप इसे इस तरह कर सकते हैं:

select format(getdate(), 'yyyy-MM-dd HH:mm:ss.fff')


1

निम्नलिखित का प्रयास करें

DECLARE @formatted_datetime char(23)
SET @formatted_datetime = CONVERT(char(23), GETDATE(), 121)
print @formatted_datetime

1

यह new Date().getTime()जावास्क्रिप्ट के बराबर है :

सेकंड में समय पाने के लिए नीचे दिए गए कथन का उपयोग करें।

SELECT  cast(DATEDIFF(s, '1970-01-01 00:00:00.000', '2016-12-09 16:22:17.897' ) as bigint)

मिलीसेकंड में समय प्राप्त करने के लिए नीचे दिए गए कथन का उपयोग करें।

SELECT  cast(DATEDIFF(s, '1970-01-01 00:00:00.000', '2016-12-09 16:22:17.897' ) as bigint)  * 1000

1

वापसी प्रारूप yyyy-mm-hh hh: mi: ss.sss के साथ एक फ़ंक्शन बनाएँ

create function fn_retornaFecha (@i_fecha datetime)
returns varchar(23)
as
begin
declare 
@w_fecha varchar(23),
@w_anio  varchar(4),
@w_mes   varchar(2),
@w_dia   varchar(2),
@w_hh    varchar(2),
@w_nn    varchar(2),
@w_ss    varchar(2),
@w_sss   varchar(3)

select @w_fecha = null

if ltrim(rtrim(@i_fecha)) is not null 
begin
   select
   @w_anio = replicate('0',4-char_length( convert(varchar(4), year(@i_fecha)) )) + convert(varchar(4), year(@i_fecha)),
   @w_mes  = replicate('0',2-char_length( convert(varchar(2),month(@i_fecha)) )) + convert(varchar(2),month(@i_fecha)),
   @w_dia  = replicate('0',2-char_length( convert(varchar(2),  day(@i_fecha)) )) + convert(varchar(2),  day(@i_fecha))  ,
   @w_hh   = replicate('0',2-char_length( convert(varchar(2),datepart( hh, @i_fecha ) ) )) + convert(varchar(2),datepart( hh, @i_fecha ) ),
   @w_nn   = replicate('0',2-char_length( convert(varchar(2),datepart( mi, @i_fecha ) ) )) + convert(varchar(2),datepart( mi, @i_fecha ) ),
   @w_ss   = replicate('0',2-char_length( convert(varchar(2),datepart( ss, @i_fecha ) ) )) + convert(varchar(2),datepart( ss, @i_fecha ) ),
   @w_sss  = convert(varchar(3),datepart( ms, @i_fecha ) ) + replicate('0',3-DATALENGTH( convert(varchar(3),datepart( ms, @i_fecha ) )  ))


   select @w_fecha = @w_anio + '-' + @w_mes + '-' + @w_dia + ' ' + @w_hh + ':' + @w_nn + ':' + @w_ss + '.' + @w_sss
end

return @w_fecha

end
go

उदाहरण

select fn_retornaFecha(getdate())

और परिणाम है: 2016-12-21 10: 12: 50.123

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.