Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर - अगले मिनट के लिए राउंड टाइम मान

SELECT  DATEADD(MINUTE, CEILING(DATEDIFF(SECOND, 0, CAST(CAST(PA.ORA_INIZIO AS DATETIME) AS TIME)) / 60.0), DATEDIFF(DAY, 0, PA.ORA_INIZIO)) AS BEGIN_TIME_ROUNDED

संपादित करें

जैसा कि एक टिप्पणी में बताया गया है यह 0 और 1 सेकंड के बीच के समय में विफल रहता है। इसे केवल सेकंड से मिलीसेकंड में सीलिंग में सटीकता को बदलकर मुकाबला किया जा सकता है:

SELECT  PA.ORA_INIZIO,
        DATEADD(MINUTE, 
            CEILING(DATEDIFF(MILLISECOND, 0, CAST(PA.ORA_INIZIO AS TIME)) / 60000.0),
            DATEDIFF(DAY, 0, PA.ORA_INIZIO)) AS BEGIN_TIME_ROUNDED
FROM (VALUES 
        (CONVERT(DATETIME, '20211126 15:59:00.997')), 
        (CONVERT(DATETIME, '20211126 15:59:00.004'))
    ) AS PA (ORA_INIZIO);

जो देता है:

ORA_INIZIO BEGIN_TIME_ROUNDED
2021-11-26 15:59:59.97 2021-11-26 16:00:00.000
2021-11-26 15:59:00.003 2021-11-26 16:00:00.000


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटा के बिना किसी क्वेरी से कॉलम नाम प्राप्त करें

  2. मैं एन्क्रिप्टेड संग्रहीत प्रक्रियाओं को ऑनलाइन डीबी से स्थानीय में कैसे स्थानांतरित करूं?

  3. मेरी निष्पादन योजना में एक प्रकार क्यों दिख रहा है?

  4. ASP.NET वेबसाइट में File.CreateFile का उपयोग करके Sql Server 2012 FileTable में फ़ाइल डालने पर पहुँच अस्वीकृत

  5. एन-टियर एप्लिकेशन में यूटीसी डेटाटाइम वैल्यू कहां सेट करें:प्रेजेंटेशन लेयर, डोमेन या डेटाबेस?