Tag: "zeit"

Wir basteln uns ein Datum

Posted on Feb 12, 2005 von in SQL Server

Was tun, wenn man den Tag, den Monat und das Jahr fein säuberlich in Einzelteilen zerlegt hat? Schauen wir uns mal verschiedene Methoden an, daraus ein gültiges Datum herzustellen.

Ganze Geschichte »

Tage eines Monats Teil 2

Posted on Jul 19, 2004 von in SQL Server

Dieser Beitrag zeigte, wie man mit Integer Operationen die Anzahl der Tage eines Monats ermitteln kann. SQL Server MVP Steve Kass hat den folgenden Trick in den englischen Newsgroups gepostet:

Ganze Geschichte »

Das Alter einer Person

Posted on Jul 13, 2004 von in SQL Server

In Ergänzung zu diesem Beitrag kann man auch folgende Alternativen zur Bestimmung des Alters einer Person verwenden:

Ganze Geschichte »

Zeitwerte addieren

Posted on Jul 13, 2004 von in SQL Server
SET NOCOUNT ON
CREATE TABLE #temp_table 
( 
     hm VARCHAR(5)
)
INSERT #temp_table VALUES('8:30')
INSERT #temp_table VALUES('5:01')
INSERT #temp_table VALUES('12:59')
INSERT #temp_table VALUES('7:20')
SET NOCOUNT OFF
SELECT
     CONVERT(VARCHAR, SUM(DATEDIFF(ss, '1900-01-01 00:00', CONVERT(DATETIME, hm)))/3600) +
     ':' +
     CONVERT(VARCHAR, (SUM(DATEDIFF(ss, '1900-01-01 00:00', CONVERT(DATETIME, hm)))%3600)/60)
     
FROM
     #temp_table
DROP TABLE #temp_table

                                                              
------------------------------------------------------------- 
33:50

(1 row(s) affected)

Integer in Zeit umwandeln

Posted on Jul 13, 2004 von in SQL Server
DECLARE @time INT
SET @time = 7382
SELECT
@time / 3600 AS Stunden
, (@time / 60)% 60 AS Minuten
, @time % 60 AS Sekunden

Stunden Minuten Sekunden
----------- ----------- -----------
2 3 2

(1 row(s) affected)

Datum aus einer DATETIME Spalte entfernen

Posted on Jul 13, 2004 von in SQL Server
SELECT RIGHT(STUFF(CONVERT(CHAR(22),GETDATE(),13),21,4,' '),9)
          
--------- 
10:14:40 

(1 row(s) affected)

--Oder

SELECT CONVERT(CHAR(8), GETDATE(), 8)
         
-------- 
10:14:40

(1 row(s) affected)

--Oder

SELECT CONVERT(CHAR(8), GETDATE(), 108)
         
-------- 
10:14:40

(1 row(s) affected)

Falls man auch noch die Millisekunden braucht, kann man:

SELECT CONVERT(CHAR(12),GETDATE(),114)
             
------------ 
10:20:16:033

(1 row(s) affected)

ausführen.

Summe pro Woche anzeigen

Posted on Jul 13, 2004 von in SQL Server
USE Northwind
GO
SELECT 
 n.dow
 , ISNULL(SUM(o.Freight),0)
  FROM Orders o 
 RIGHT JOIN 
     (SELECT 1 
          dow 
     UNION ALL SELECT 2 
     UNION ALL SELECT 3 
     UNION ALL SELECT 4 
     UNION ALL SELECT 5 
     UNION ALL SELECT 6 
     UNION ALL SELECT 7) n
 ON DATEPART(w,Orderdate) = n.dow
GROUP BY n.dow

dow                               
----------- --------------------- 
1           13772.8400
2           12858.7800
3           11069.5500
4           12114.7200
5           15126.8000
6           .0000
7           .0000

(7 row(s) affected)

Warnung: NULL-Wert wird durch eine Aggregat- oder eine andere SET-Operation gelöscht.

Danke an Jonathan Van Houtte.

Nachtrag zum Datetime Datentypen

Posted on Jul 13, 2004 von in SQL Server


Die anderen 4 Byte speichern die Tageszeit, die als Anzahl der Millisekunden seit Mitternacht dargestellt wird.

Dies kann man in der Januar 2004 Edition von BOL  nachlesen.

Ganze Geschichte »