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

MSSQL Records zwischen Gestern Mitternacht und Heute Mitternacht

Frage Entwicklung Datenbanken

Mitglied: solaris-ch

solaris-ch (Level 1) - Jetzt verbinden

18.09.2008, aktualisiert 19.09.2008, 10940 Aufrufe, 9 Kommentare

MSSQL 2003

Hallo liebe Admins!

Wieder einmal ich, und wieder einmal ein MSSQL Problem...

Wir wollen eine Table von einem MSSQL System auf ein MySQL System spiegeln. Einmal am Tag.
Nun wollen wir dies via einem in der MSSQL Table vorhandenen Timestamp realisieren.

Alle Records, welche zwischen Gestern 00:00:00 und Heute 00:00:00 in der Tabelle sind, sollen in ein Textfile geschrieben werden, welches dann importiert wird. Das mit dem Textfile ist auch eine Zangengeburt, geht aber mittlerweile. Nur das Selektieren der Records gelingt uns nicht.

Beispiel:

(Pseudo Code)

SELECT *
FROM
db.user.tbl
WHERE
TimeStamp BETWEEN '2008-09-17 00:00:00' and '2008-09-18 00:00:00'

Anders, vielleicht einfacher ausgedrückt:
Wir wollen alle Records eines Tages.
Und zwar vom vergangenen Tag.
Keine Records vom aktuellen Tag.

Und genau dort hängts bei uns... jemand ne Idee?

Besten Dank für Eure Hilfe!
Mitglied: Biber
18.09.2008 um 16:49 Uhr
Moin solaris-ch,

ich habe eigentlich im moment nur zwei Probleme.
- ich verstehe Deine Frage/Dein problem nicht wirklich
- und ich spreche kein mySQL
... aber in der Tendenz würder ich es so abfackeln, bis mir etwas ästhetisches einfällt:
01.
SELECT deitab.* 
02.
FROM 
03.
db.user.tbl deitab 
04.
WHERE 
05.
 Date(deitab,DeinTimeStamp) = Date_ADD(CURDATE(), INTERVAL -1 DAY)
---> Date(DeinTimeStamp) sollte die Uhrzeit-Detailangabe aus dem Timestamp entfernen
---> CurDate() liefert nur Datum "heute" ohne Uhrzeit
--> "heute" abzüglich 1 Tach sollte "gestern" ebenfallls im Format ohne Uhrzeit liefern.

Grüße
Biber
Bitte warten ..
Mitglied: solaris-ch
18.09.2008 um 16:55 Uhr
Hi Biber!

Du hast mich effektiv nicht verstanden

Ich suche nicht den Code für mYsql, sondern für mSsql...
Bei MSSQL gibts kein CURDATE, INTERVAL geht so auch nicht...

In MySQL wüsste ich auch wie ich das Problem lösen kann. Aber eben nicht so in MSSQL...
Und ich muss die Daten aus MSSQL raus spoolen.

Gruss
Bitte warten ..
Mitglied: VW
18.09.2008 um 17:31 Uhr
Moin,

du kannst doch, wie in Excel, mit größer als (>) und kleiner als (<) arbeiten, oder?

Dann wäre dein Statement von oben in etwa:
01.
SELECT * 
02.
FROM 
03.
db.user.tbl 
04.
WHERE 
05.
TimeStamp > '2008-09-17 00:00:00' AND TimeStamp < '2008-09-18 00:00:00'
Ich kann dir allerdings so nicht sagen, in welchem Format du den Timestamp ansprechen musst, da ich außer in einer (qualitativ nicht so hochwertigen) Schulung noch kein MSSQL angewendet habe.

Habe nur SQL-Erfahrung aus Firebird-Datenbanken. Und das auch nur aus der Schule aus dem Unterricht.

MfG,
VW
Bitte warten ..
Mitglied: bastla
18.09.2008 um 21:08 Uhr
Hallo solaris-ch!

Vielleicht so:
01.
WHERE CONVERT(VARCHAR(8), TimeStamp, 112) = CONVERT(VARCHAR(8), GETDATE() - 1, 112)
Grüße
bastla
Bitte warten ..
Mitglied: Biber
18.09.2008 um 22:20 Uhr
Moin solaris-ch,

In den MSDN-BOL steht:
The SQL-2003 timestamp data type is equivalent to the Transact-SQL datetime data type.

demnach sollte bastlas CASTerei funktionieren.

Grüße
Biber
Bitte warten ..
Mitglied: solaris-ch
19.09.2008 um 09:00 Uhr
Hi Bastla

besten Dank für deine Hilfe! Dieser Weg funktioniert... wenn auch mit enormen Performance - Gelüsten aufgrund des Casterei.

Vielen Dank!
Bitte warten ..
Mitglied: MadMax
19.09.2008 um 13:15 Uhr
Moin solaris-ch,

das Thema ist zwar als erledigt markiert, aber hier noch ein Hinweis, wie Du die "enormen Performance - Gelüste" etwas einschränken kannst. Die liegen nämlich nicht an den Converts an sich, sondern speziell an dem Convert auf den Timestamp. Wenn also nur die Vergleichswerte konvertiert werden, geht es schneller. Das kann dann etwa so aussehen:
01.
declare @Datum datetime 
02.
select @Datum = convert (datetime, convert (varchar (20), getdate (), 112), 112) 
03.
select * from db.user.tbl 
04.
where TimeStamp >= dateadd (d, -1, @Datum) and TimeStamp < @Datum
Gruß, Mad Max
Bitte warten ..
Mitglied: solaris-ch
19.09.2008 um 13:32 Uhr
Das geht ja echt fix! Besten Dank! Ist mindestens 10 mal schneller wie die erste Variante!

Vielen Dank an dich!

Gruss
Bitte warten ..
Mitglied: bastla
19.09.2008 um 13:40 Uhr
Hallo Mad Max!

Hast natürlich völlig recht ...

Vielleicht noch effizienter:
01.
declare @Datum datetime 
02.
declare @Datum1 datetime 
03.
select @Datum = convert (datetime, convert (varchar (20), getdate (), 112), 112) 
04.
select @Datum1 = dateadd (d, -1, @Datum) 
05.
select * from db.user.tbl 
06.
where TimeStamp >= @Datum1 and TimeStamp < @Datum
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Sicherheit
Virenscanner gestern vs. heute
Tipp von FA-jkaSicherheit14 Kommentare

Hallo, Gestern: „Oh toll“! Heute: „Oh Mist“! Ich empfehle Format C: zynische Grüße, Jörg

Microsoft
Gestern bei Microsoft ..
Information von FrankMicrosoft60 Kommentare

Gestern hatte ich das Vergnügen mit hochrangigen Microsoft Mitarbeitern über die zukünftige Strategie von Microsoft zu den Themen: "Die ...

Windows Server
Kann man WSUS auf den Stand von gestern zurücksetzen?
gelöst Frage von Jizz-MoWindows Server5 Kommentare

Hallo an alle, ich habe folgendes Problem: habe in WSUS alle Updates fälschlicherweise auf abgelehnt gesetzt, nun bekommen meine ...

DNS
SPF records
gelöst Frage von itnobbyDNS3 Kommentare

Hallo zusammen, ich hab mal eine Frage zu SPF records. Ich besitze 2 Domänen www.domain1.de und www.domain2.de Auf dem ...

Neue Wissensbeiträge
Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 34 MinutenSicherheit2 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Sicherheit

Meltdown und Spectre: Die machen uns alle was vor

Information von Frank vor 58 MinutenSicherheit9 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Microsoft

Update KB4073578 für AMD CPU (Spectre und Meltdown Lücke)

Information von sabines vor 7 StundenMicrosoft

Wegen Problemen (BOSD, nicht startende PCs) wurde das Update KB4056897 und KB4056894 für AMD CPUs zurückgezogen. Dieses Update KB4073578 ...

Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 20 StundenMac OS X4 Kommentare

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Heiß diskutierte Inhalte
Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell27 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von 92943Windows 1025 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
Frage von Windows10GegnerNetzwerkgrundlagen18 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...