Làm cách nào để in GETDATE () trong SQL Server với thời gian mili giây?


91

Tôi muốn in GETDATE () trong SQL Server 2008, tôi cần thời gian tính bằng mili giây (điều này dành cho mục đích gỡ lỗi - để tìm thời gian thực thi của sp)

Tôi tìm thấy sự khác biệt này

  • SELECT GETDATE()trả về 2011-03-15 18: 43: 44.100
  • print GETDATE()trả về ngày 15 tháng 3 năm 2011 6:44 CH

Tôi nghĩ rằng SQL Server tự động đánh máy trong chức năng in.

Tôi cần in ngày tháng như thế này 2011-03-15 18:43:44.100

Cảm ơn bạn đã giúp đỡ.

Câu trả lời:


110

Đầu tiên, bạn có thể nên sử dụng SYSDATETIME()nếu bạn đang tìm kiếm độ chính xác hơn.

Để định dạng dữ liệu của bạn bằng mili giây, hãy thử CONVERT(varchar, SYSDATETIME(), 121).

Đối với các định dạng khác, hãy xem trang MSDN trên CASTCONVERT .


3
In CAST (GETDATE () dưới dạng Datetime2 (7)) Điều này quá hiệu quả, Cảm ơn câu trả lời của bạn.
Ramakrishnan

2
IN CAST (SYSDATETIME () AS NVARCHAR (200)) hoạt động như một nét duyên dáng
Gabriel Espinoza

53
SELECT CONVERT( VARCHAR(24), GETDATE(), 113)

CẬP NHẬT

PRINT (CONVERT( VARCHAR(24), GETDATE(), 121))

29

Nếu phiên bản SQL Server của bạn hỗ trợ hàm FORMAT, bạn có thể thực hiện như sau:

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

11

2 cái này giống nhau:

Print CAST(GETDATE() as Datetime2 (3) )
PRINT (CONVERT( VARCHAR(24), GETDATE(), 121))

nhập mô tả hình ảnh ở đây


1

Thử theo dõi

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

1

Điều này tương đương với new Date().getTime()trong JavaScript:

Sử dụng câu lệnh dưới đây để tính thời gian tính bằng giây.

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

Sử dụng câu lệnh dưới đây để tính thời gian tính bằng mili giây.

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

1

Tạo một hàm với định dạng trả về 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

Thí dụ

select fn_retornaFecha(getdate())

và kết quả là: 2016-12-21 10: 12: 50.123

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.