Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Varchar to Datetime dann to Integer... time probleme

Frage Entwicklung Datenbanken

Mitglied: solaris-ch

solaris-ch (Level 1) - Jetzt verbinden

10.09.2008, aktualisiert 13:28 Uhr, 3781 Aufrufe, 4 Kommentare

T-SQL MSSQL 2003

Hallo Zusammen

Ich möchte anmerken, dass die Datenstruktur nicht wirklich sinnvoll ist, aber ich damit leben muss...

Folgende Ausgangslage:

Ich habe ein Feld welches "Amount" heisst und vom Typ VARCHAR ist. In diesem Feld ist die Dauer von gewissen Dingen gespeichert.
Das sieht dann zum Beispiel so aus: 02:59:25 (2 Stunden, 59 Minuten, 25 Sekunden). Man beachte, dass es ein VARCHAR Feld ist.

Nun muss ich die Felder pro Kunde summieren.
Meine Überlegung ging in die folgende Richtung:

1. Wandle ich diesen VARCHAR Wert in einen Datetime Wert mit convert(datetime,'02:59:25',108). Da beim Uwandeln das Datum automatisch gesetzt wird und auf 1900-01-01 gesetzt wird, kann ich bequem die Differenz ausrechnen:

2. datediff(s,'1900-01-01',convert(datetime,'02:59:25',108))

Das klappt hervorragend und ich bekomme meinen Integer Wert den ich dann beliebig weiterverarbeiten kann.

Nun aber das "Schlimme". Es gibt Records, bei denen die Dauer im Feld "Amount" grösser ist als ein Tag Stunden hat.
So zum Beispiel: 59:48:27.
Und dies ist auch mein Problem. Wie bekomme ich das hin, dass ich auch diese Werte in Summen, etc verwenden kann?


Hoffe ihr versteht meine Ausführungen

Beste Grüsse und vielen Dank!
Mitglied: fablei
10.09.2008 um 11:45 Uhr
Macht es denn große Probleme das alle auf timestamps umzustellen? Finde ich persönlich immer leichter zum rechnen, umwandeln etc.

Grüße
Bitte warten ..
Mitglied: solaris-ch
10.09.2008 um 11:51 Uhr
hi

Ich hab das zuerst so gemacht. Aber da ergibt sich ja dasselbe Problem, da ein Timestamp eine Uhrzeit zu einem bestimmten Datum ist. Und die Uhrzeit darf nicht grösser als 23:59:59 sein, da danach der Tag quasi um 1 erhöht wird...

--> 2008-09-10 23:59:59 (Timestamp von der letzten Sekunde des heutigen Tages)
--> 2008-09-11 00:00:01 (Timestamp von der ersten Sekunde des nächsten Tages)

Gruss
Bitte warten ..
Mitglied: Tak00r
10.09.2008 um 12:01 Uhr
Hi

Warum speicherst du die ganze Zeit nicht einfach als Sekunden ab. Da hast du keine Probleme mit dem addieren. Also z.B. 59h 48min 27sec sind dann 215307
Denke, dass du dir damit am wenigsten Arbeit machen würdest.
Ansonsten kannst du das natürlich weiter so programmieren, dir dann den Varchar nach dem auslesen zurechtschneiden. Ist aber meiner Meinung nach nicht optimal und die andere Lösung sollte leichter sein.
Bitte warten ..
Mitglied: solaris-ch
10.09.2008 um 13:28 Uhr
Hi Tak00r

wieso in die Ferne schweifen wenn doch die Lösung so nahe liegt
Wiedereinmal hat die klare Sicht der administrator.de User meine Getrübte Linse erhellt...

Besten Dank an Dich und natürlich auch an Deinen Vor-Poster.

Grüsse
Bitte warten ..
Ähnliche Inhalte
Entwicklung
SQL GROUP BY Convert Datetime
gelöst Frage von StfnCstrEntwicklung4 Kommentare

Hallo Zusammen, ich sitze schon seit gefühlten Stunden an nem Script, ist wahrscheinlich sehr simpel, jedoch seh ich den ...

Datenbanken
MS-SQL - Wie kan man aus einem Datetime Feld nur das Datum ohne Time extrahieren und trotzdem als Datumstyp belassen?
Frage von Rene1976Datenbanken2 Kommentare

Hallo, in unserem MS-SQL Server 2012 sind die Datumsfelder alle von Datentyp Datetime. Für meine Abfragen brauche ich aber ...

Batch & Shell
Datum im Format yyyyMMddhhmm in Datetime umwandeln per Powershell
gelöst Frage von FEKC2014Batch & Shell5 Kommentare

Hallo, ich muss aus einem Dateinamen ein Datum entnehmen und dieses anschließend in ein Datetime-Format bringen, damit ich es ...

Microsoft Office
Excel 2013: hextodez mit 16 Bit signed Integer?
gelöst Frage von alhambraMicrosoft Office3 Kommentare

Hallo zusammen, ein Gerät (was genau ist hier egal) liefert uns Werte von -32768 bis +32768 als Hex-Wert. Der ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 StundeBatch & Shell1 Kommentar

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 3 StundenHumor (lol)5 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 18 StundenMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 19 StundenSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Linux
OpenSource Groupware
Frage von FA-jkaLinux13 Kommentare

Hallo, ich suche eine Groupware als Alternative zum Exchange. Wesentliche Aufgaben sind die Handhabung von E-Mails (persönliche und gemeinsam ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...