-
Mit SQL-Variablen kann man auch rechnen:
select nahtzeit - schnittzeit as opdauer from myfile
oder auch
update myfile
set opdauer = nahtzeit - schnittzeit
In SQL wird die Dauer immer im Datum/Zeitformat geliefert, d.h., der Wert ist entsprechend zu interpretieren:
JJJJ-MM-TT.HH:MM:SS
bedeutet dann
JJJJ Jahre
MM Monate
TT Tage
HH Stunden
MM Minuten
SS Sekunden
-
guten morgen, ich hoffe ich störe nicht, aber ich da nochmal ein kleines problemchen
also das mit dem update opdauer
und dann set opdauer = nahtzeit - schnittzeit
hat wunderbar funktioniert
Ergebnis: z.B.: 1900-01-01 01:15:00.000
Jetzt möchte ich , wenn es möglich ist
1900-01-01 eliminieren , so dass nur noch die zeit zu sehen ist
gibt es da vielleicht eine möglichkeit
Vielen dank!!!!
-
 Zitat von Corraggiouno
guten morgen, ich hoffe ich störe nicht, aber ich da nochmal ein kleines problemchen
also das mit dem update opdauer
und dann set opdauer = nahtzeit - schnittzeit
hat wunderbar funktioniert
Ergebnis: z.B.: 1900-01-01 01:15:00.000
Jetzt möchte ich , wenn es möglich ist
1900-01-01 eliminieren , so dass nur noch die zeit zu sehen ist
gibt es da vielleicht eine möglichkeit
Vielen dank!!!!
Ich gehe davon aus, dass Dein Ausgabe-Feld ein Zeitmarken-Feld ist.
Mit der Funktion TIME(ZeitMarke) kann nur der Zeit-Anteil aus der Zeitmarke sichtbar gemacht werden.
Birgitta
-
jetzt weiss ich zumindest welche option ich verwenden kann ,
was ich nicht weiss ist , wie bette ich die funktion "time" in meine sql-anweisung ein
ich bin ein wirklicher anfänger was mssql betrifft , sorry
also wenn ich folgenden code habe
update opdauer
set opdauer=nahtzeit-schnittzeit
wo bette ich hier die funktion time ein
Vielen dank im voraus
-
Ob MSSQL das so unterstützt weiss ich nicht, aber TIME(nahzeit-schnittzeit) müsste funktionieren.
Wenn dein Feld OPDAUER allerdings nicht als TIME-Feld sondern als TIMESTAMP definiert ist, bringt das so nichts.
Ggf. musst du dann "Select TIME(opdauer) ..." verwenden.
-
sorry, muss nochmal nachfragen
also meinen nahtzeit=datetime/die schnittzeit=datetime
und die opdauer spalte ist timestamp
habe folgenden code verwendet :
select time( opdauer)
set opdauer=nahtzeit-schnittzeit
.......fehlermeldung----> 'time' is not a recognized function name
was soll ich tun
mit sicherheit stimmt die syntax nicht von mir
-
Dann ist die TIME-Funktion nicht bekannt.
Für MSSQL-Server heisst die Funktion DATEPART (übrigens die gleiche wie in VB), weiteres siehe Onlinehilfe zu MSSQL-Server.
-
vielen vielen dank
ich habe folgende syntax verwendet
update datepart (opdauer)
set opdauer=nahtzeit - schnittzeit
dann kam
Line 1: incorrect syntax near '('.
ich weiss nicht wo ich das datepart einbetten soll
Hättet ihr vielleicht nochmal einen tipp für mich , sorry
-
Nochmal:
Solange dein Feld opdauer ein TIMESTAMP-Feld ist, wird dieses immer auch ein Datum (nähmlich den 1.1.1900) enthalten !!!
Ansonsten siehe auch mal in die Hilfe des SQL-Servers !!!!!
Hier mal eine Beispiel für DATEPART:
DATEPART
Gibt eine ganze Zahl zurück, die den angegebenen Teil für datepart des angegebenen Datums darstellt.
Syntax
DATEPART ( datepart , date )
Argumente
datepart
Der Parameter, der angibt, welche Datumseinheit zurückgegeben werden soll. Die Tabelle listet die Datumseinheiten und Abkürzungen auf, die von Microsoft® SQL Server™ erkannt werden.
Datumseinheit Abkürzungen
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
weekday dw
hour hh
minute mi, n
second ss, s
millisecond ms
Die Datumseinheit week (wk, ww) spiegelt an SET DATEFIRST vorgenommene Änderungen wider. Der 1. Januar eines beliebigen Jahres definiert die Anfangszahl für die Datumseinheit week. Beispiel: DATEPART(wk, 'Jan 1, xxxx') = 1, wobei xxxx für ein beliebiges Jahr steht.
Die Datumseinheit weekday (dw) gibt eine Zahl zurück, die dem Wochentag entspricht, z. B.: Sonntag = 1, Samstag = 7. Die von der Datumseinheit weekday erzeugte Zahl ist abhängig vom durch SET DATEFIRST festgelegten Wert, der den ersten Tag der Woche festlegt.
date
Ein Ausdruck, der einen datetime- oder smalldatetime-Wert oder eine Zeichenfolge in einem Datumsformat zurückgibt. Verwenden Sie den datetime-Datentyp nur für Datumsangaben nach dem 1. Januar 1753. Speichern Sie davor liegende Datumsangaben als Zeichendaten. datetime-Werte werden immer in Anführungszeichen eingeschlossen. Da smalldatetime nur eine Genauigkeit auf die Minute aufweist, sind Sekunden und Millisekunden immer gleich Null, wenn ein smalldatetime-Wert verwendet wird.
Wenn Sie nur die letzten beiden Ziffern der Jahreszahl angeben, liegen Werte, die kleiner oder gleich den letzten beiden Ziffern des Wertes der Konfigurationsoption two digit year cutoff sind, im selben Jahrhundert wie das Umstellungsjahr. Werte, die größer als die letzten beiden Ziffern des Wertes dieser Option sind, liegen in dem Jahrhundert, das dem Jahrhundert des Umstellungsjahres vorausgeht. Wenn two digit year cutoff z. B. auf 2049 (Standardeinstellung) eingestellt ist, wird das Jahr 49 als 2049 und das Jahr 50 als 1950 interpretiert. Um die Zweideutigkeit von Datumsangaben zu vermeiden, sollten Sie vierstellige Jahresangaben verwenden.
Weitere Informationen zum Angeben von Zeitwerten finden Sie unter Zeitformate. Weitere Informationen zum Angeben von Datumsangaben finden Sie unter „datetime“ und „smalldatetime“.
Rückgabetypen
int
Hinweise
Die Funktionen DAY, MONTH und YEAR entsprechen DATEPART(dd, date), DATEPART(mm, date) und DATEPART(yy, date).
Beispiele
Die GETDATE-Funktion gibt das aktuelle Datum zurück; allerdings wird für Vergleiche nicht immer das vollständige Datum benötigt (oft wird nur ein Teil des Datums verglichen). Dieses Beispiel zeigt die Ausgabe von GETDATE sowie DATEPART.
SELECT GETDATE() AS 'Current Date'
GO
Im Folgenden wird das Resultset aufgeführt:
Current Date
---------------------------
Feb 18 1998 11:46PM
SELECT DATEPART(month, GETDATE()) AS 'Month Number'
GO
Im Folgenden wird das Resultset aufgeführt:
Month Number
------------
2
Angenommen, das aktuelle Datum ist der 29. Mai:
SELECT DATEPART(month, GETDATE())
GO
Im Folgenden wird das Resultset aufgeführt:
-----------
5
(1 row(s) affected)
In diesem Beispiel wird das Datum als Zahl angegeben. Beachten Sie, dass SQL Server den Wert 0 als 1. Januar 1900 interpretiert.
SELECT DATEPART(m, 0), DATEPART(d, 0), DATEPART(yy, 0)
Im Folgenden wird das Resultset aufgeführt:
----- ------ ------
1 1 1900
Siehe auch
CAST und CONVERT
Datentypen
Datums- und Zeitfunktionen
©1988-2000 Microsoft Corporation. Alle Rechte vorbehalten.
-
mein feld opdauer ist aber kein timestamp mehr sondern datetime
wenn ich die die schnittzeit von der nahtzeit abziehe dann funktioniert das auch so weit ganz gut,
nur es wird zusätzlich noch das datum dazu ausgegeben ......
da muss es doch ne funktion geben , wo ich das datum einfach abschneiden kann so das ich als ergebnis NUR die dauer (z.b. 02:50:00) habe
die getdate- funktion hilft mir in diesem fall nicht wirklich weiter alles was ich benötige ist die zeit in hh:mm:ss
Meine syntax :
update opdauer
set opdauer=nahtzeit-schnittzeit
gibt es dafür keine explizite lösung??
vielen dank!!
-
 Zitat von Corraggiouno
mein feld opdauer ist aber kein timestamp mehr sondern datetime
wenn ich die die schnittzeit von der nahtzeit abziehe dann funktioniert das auch so weit ganz gut,
nur es wird zusätzlich noch das datum dazu ausgegeben ......
da muss es doch ne funktion geben , wo ich das datum einfach abschneiden kann so das ich als ergebnis NUR die dauer (z.b. 02:50:00) habe
die getdate- funktion hilft mir in diesem fall nicht wirklich weiter alles was ich benötige ist die zeit in hh:mm:ss
Meine syntax :
update opdauer
set opdauer=nahtzeit-schnittzeit
gibt es dafür keine explizite lösung??
vielen dank!!
Wenn Dein Feld ein TimeStamp oder, wie Du es ausdrückst ein DateTime Format hat, muss auch Datum und Zeit drin stehen!
Was Du siehst ist nicht das, was tatsächlich in einem Zeit-Feld steht, sondern lediglich eine Aufbereitung. Du kannst über Funktionen DATE(), TIME() nur den Datums- oder Zeit-Anteil ermitteln und anzeigen, wenn das so erforderlich ist.
Vermutlich ist nicht nur die OpDauer eine Zeitmarke sondern auch die anderen beiden Felder.
Select Time(OpDauer) from MyFile
Birgitta
Similar Threads
-
By rebe in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 23-01-07, 16:06
-
By rcauchy in forum NEWSboard Windows
Antworten: 9
Letzter Beitrag: 06-06-05, 10:24
-
By Corraggiouno in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 31-05-05, 08:46
-
By epsih2 in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 29-11-04, 10:06
-
By Xenox in forum NEWSboard Windows
Antworten: 2
Letzter Beitrag: 29-01-02, 17:24
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks