Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Ubah waktu desimal menjadi jam dan menit

Anda dapat mencoba:

DECLARE @HOURS decimal(7,4) = 20.5599
SELECT  CAST(CONVERT(VARCHAR,DATEADD(SECOND, @HOURS * 3600, 0),108) AS TIME)

keluaran :20:33:35

Tapi ingat:Ketik Waktu di MSSQL hanya di bawah 24 jam

Jika Anda ingin lebih dari 24 jam, coba:

DECLARE @HOURS decimal(7,4) = 25.5599
SELECT 
RIGHT('0' + CAST (FLOOR(@HOURS) AS VARCHAR), 2) + ':' + 
RIGHT('0' + CAST(FLOOR((((@HOURS * 3600) % 3600) / 60)) AS VARCHAR), 2) + ':' + 
RIGHT('0' + CAST (FLOOR((@HOURS * 3600) % 60) AS VARCHAR), 2)

keluaran :25:33:35

-- Perbarui

Menit desimal hingga lebih dari 24 jam

DECLARE @MINUTES decimal(7,4) = 77.9
SELECT
RIGHT('0' + CAST (FLOOR(COALESCE (@MINUTES, 0) / 60) AS VARCHAR (8)), 2) + ':' + 
RIGHT('0' + CAST (FLOOR(COALESCE (@MINUTES, 0) % 60) AS VARCHAR (2)), 2) + ':' + 
RIGHT('0' + CAST (FLOOR((@MINUTES* 60) % 60) AS VARCHAR (2)), 2);

keluaran:01:17:54



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Alternatif fungsi lead lag di SQL Server 2008

  2. Ekspresi KASUS SQL Server

  3. SQL Server:gunakan parameter di CREATE DATABASE

  4. Bagaimana cara memanggil Prosedur Tersimpan dalam Tampilan?

  5. Memahami fungsi PIVOT di T-SQL