Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 4875 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
PHP
PHP MySQL Login (7)

Frage von Yanmai zum Thema PHP ...

Webbrowser
gelöst Daten in entfernte Mysql DB schreiben (3)

Frage von nullacht15 zum Thema Webbrowser ...

Windows 7
Computer OU auslesen bzw. abfragen (2)

Frage von mexx991 zum Thema Windows 7 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...