Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

MySQL - Abfragen gestalten

Frage Entwicklung Datenbanken

Mitglied: Dani

Dani (Level 5) - Jetzt verbinden

16.10.2006, aktualisiert 17.10.2006, 4912 Aufrufe, 11 Kommentare

Guten Abend,

ich stehe vor einer kl. Aufgabe. Und zwar benutzen wir hier TrafMeter Lite. Das Programm protokolliert jede Stunde wie viel Pakete raus und wie viele rein kommen (Netzwerkverkehr auf der Karte) sind. Das Ganze wird in einer MySQL Datenbank gespeichert. Nun sind alle Datensätze wie folgt aufgebaut:
01.
     ts                         sent                      recv   
02.
 610110700           32793740             10359517 
Natürlich sollen die Info's dann schön dargestellt werden per Web-Interface. Das habe ich soweit auch schon fast fertig. Es fehlen halt noch die entsprechende SQL-Statments. Abrufbar soll folgendes sein:

1.) nach Jahre => Sprich ich wähle das Jahr aus und bekomme dann daneben alle Monate mit "Gesendete" und "Empfange"
2.) Dann klickt man auf einen Monat => Alle Datensätze von diesem Moant ansehen.
3.) Dann klickt man auf einen Tag => Alle Datensätze von diesem Tag ansehen.

Aufbau der Felder:

TS
Typ: int(11)
Aufbau: die 6 steht für das Jahr. Die nächsten 2 Stellen ist der Monat. Daruf kommt mit 2 Stellen der Tag, dann die Stunde (auch 2 Stellen) und die restlichen 2 sind die Sekunden.


Wie müssten die einzelen Statments für die 3 Anforderungen aussehen?? Schon mal Danke im vorraus...


Gruß
Dani
Mitglied: 6890
16.10.2006 um 20:07 Uhr
hallo,

ich verstehzwar deine frage nicht so richtig aber du könntest die sql funktion substr(ts::text,0,2) für jahr oder substr(ts::text,2,4) für monat oder substr(ts::text,4,6) für tag nutzen.

hoffe ich hab die richtig verstanden.

mfg godlike P
Bitte warten ..
Mitglied: Dani
16.10.2006 um 20:33 Uhr
Also es soll eine TRrafficauswertung gemacht werden. Diese soll dann per PHP verantschaulicht werden.

Wie würde ein Beispiel für 610110700 aussehen, wenn ich den die Stunde ("07") ausgeben lassen möchte. TAbelle heißt t_tml1


Gruß
Dani
Bitte warten ..
Mitglied: 6890
16.10.2006 um 20:41 Uhr
select substr(ts::text,5,7) from t_tml

mfg
Bitte warten ..
Mitglied: Biber
16.10.2006 um 20:44 Uhr
...MySql hab ich grad nicht griffbereit, aber in halbwegs "normalen" SQL sollte es so gehen:

01.
SELECT tstabelle.ts, "200" + mid(cstr(ts),1,1) as year,  mid(cstr(ts),2,2) as month, 
02.
 mid(cstr(ts),4,2) as day,  
03.
 mid(cstr(ts),6,2) +":" + mid(cstr(ts),8,2) as hhmm 
04.
FROM tstabelle;
ts year month ~ day hhmm
610172044 2006 10 17 20:44

Gruß
Biber
[Edit]
@Godlike
...bzw:
select * from t_tml where substr(ts::text,5,7) = '07'
and substr(ts::text,3,5) = '17' and substr(ts::text,1,3) = '10' ....;
[/Edit]
[EditEdit] ... where ts = '610110700' !!!! ..
*lach* ..hab ich auch grad gemerkt....
...where ts >= '610110700' and ts <'610110800' ...
[/EditEdit]
Bitte warten ..
Mitglied: 6890
16.10.2006 um 20:50 Uhr
[Edit]
@Godlike
...bzw:
select * from t_tml where
substr(ts::text,5,7) = '07';
[/Edit]

@ biber

nein! wenn dann:

select substr(ts::text,5,7) from t_tml where ts = '610110700' !!!!

100% ig

mfg
Bitte warten ..
Mitglied: Dani
16.10.2006 um 20:51 Uhr
Hi,
schon mal Danke an euch. Leider bringt er n Fehler:
01.
#1305 - FUNCTION trafmeter.cstr does not exist.
Biber: Ich habe dein Statment 1:1 übernommen!


Gruß
Dani
Bitte warten ..
Mitglied: Biber
16.10.2006 um 20:55 Uhr
@Dani

Sorry, dann kennt MySql die cstr()-Funktionalität zwar, wie godLike ja vorgeführt hat, aber nicht die cStr()- Funktion.

Aber die Mimik ist schon die Gleiche... halt auf die jeweils relevanten Stellen des ts-als-String-Wertes vergleichen bzw. abgreifen.

Gruß
Biber
Bitte warten ..
Mitglied: Dani
16.10.2006 um 21:01 Uhr
Hi,
ich steh heut schon den ganzen Tag aufm Schlauch. Was heißt das genau bzw. was muss ich an deinem Beispiel ändern damit es geht?!


Gruß
Dani
Bitte warten ..
Mitglied: Biber
16.10.2006 um 21:35 Uhr
Moin Dani,

so wie godlike P skizziert hat:

Select * from t_tml
... ...where ts >= '610110700' and ts <'610110800'; ... [ alle Sätze vom 11.Okt 06 von 07h bis 07:59:59]

-oder-
... ...where substr(ts::text,0,3 = '610'; ... [ alle Sätze aus dem Oktober 2006]
-oder-
....

Wenn Du Deine Kriterien so wie oben beschrieben "staffeln" willst, könntest Du bei jeder weiter einschränkenden Auswahl der Anwender eine weitere AND-Bedingung an das Statement dranhängen.

Anfangen mit Jahr:
...where substr(ts::text,0,1 = '6';
-weiter mit Jahr UND Monat:
....where substr(ts::text,0,1 = '6' AND substr(ts::text,1,3 = '10';
etc.

Oder verstehe ich jetzt die Frage miss?

Gruß
Biber
Bitte warten ..
Mitglied: Dani
16.10.2006 um 21:57 Uhr
Hi,
ich hab das mal so gemacht:
01.
SQL-Befehl:   
02.
SELECT * FROM tstabelle WHERE substr(ts, 0, 3)= '610'; 
03.
 
04.
MySQL meldet:   
05.
#1305 - FUNCTION trafmeter.substr does not exist 
ts::text habe ich durch "ts" ersetzt. Ist doch so richtig?!


Gruß
Dani
Bitte warten ..
Mitglied: Dani
17.10.2006 um 17:38 Uhr
Hi,
so jetzt geht es. Der Tag heute war schon besser. *gg*
So geht es jetzt:
01.
Select * from tstabelle where substring(ts,1,1)  like '6%'
Vielen Dank an euch beiden!!

*edit*
So sieht jetzt dein Script aus:
01.
SELECT "2000" + SUBSTRING( ts, 1, 1 ) AS jahr, SUBSTRING( ts, 2, 2 ) AS monat, SUBSTRING( ts, 4, 2 ) AS tag, SUBSTRING( ts, 6, 2 ) + ":" + SUBSTRING( ts, 8, 2 ) AS stunde, recv, sent 
02.
FROM tstabelle 
03.
ORDER BY jahr, monat, tag, stunde 
04.
LIMIT 0 , 30;
Hab noch ein Denkfehler ausgemacht! Bei 2000 wird die 6 dazugezählt.


Gruß
Dani
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst MYSQL Abfrage Werte summieren (3)

Frage von Ghost108 zum Thema Datenbanken ...

Datenbanken
gelöst MySQL Abfrage um JOIN erweitern (14)

Frage von datadexx zum Thema Datenbanken ...

Datenbanken
gelöst MySQL Abfrage für demographische Zwecke (3)

Frage von morphil zum Thema Datenbanken ...

Webentwicklung
gelöst Wordpress Page gestalten ohne die Seite online schalten zu müssen (4)

Frage von Stefan007 zum Thema Webentwicklung ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Server
Bilder aus dem Web mit CSV runterladen (30)

Frage von Yannosch zum Thema Server ...

LAN, WAN, Wireless
Gebäudeverkabelung 10Gigabit LWL (27)

Frage von raffzwo zum Thema LAN, WAN, Wireless ...

Windows Update
Novemberpatches und Nadeldrucker bereiten Kopfschmerzen (14)

Tipp von MettGurke zum Thema Windows Update ...