समय में मिलीसेकंड के साथ 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.