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

Nur das Datum aus einer MSSQL DB ausgeben.

Frage Entwicklung PHP

Mitglied: helmuthelmut2000

helmuthelmut2000 (Level 2) - Jetzt verbinden

27.04.2011 um 15:48 Uhr, 7350 Aufrufe, 22 Kommentare

Hallo,

Ich habe folgendes Problem.
Ich habe in einer MSSQL DB ein Datumsfeld mit datetime.
Da möchte ich mit PHP aus dem Datum das jetzt so angezeigt wird:

19 04 2011 12:00AM

Nur das Datum z.B. so:

19.04. oder
19.04.11

anzeigen.

Kann mir da jemand weiterhelfen?

Danke.
Mitglied: SlainteMhath
27.04.2011 um 16:03 Uhr
Moin,

Kann mir da jemand weiterhelfen?
Die PHP dokumentation vielleicht? DateTime::format

lg,
Slainte
Bitte warten ..
Mitglied: helmuthelmut2000
27.04.2011 um 16:16 Uhr
Hallo,

Da komm ich nicht so richtig zurecht.

Ich hab das so:

Connect auf die Datenbank.
Dann,

$abfrage = mssql_query("select * from Ergebnisse WHERE Name ");

while ($dsatz = mssql_fetch_assoc($abfrage))
{
echo "<td'>" . $dsatz["Datum"] . "</td>";
}

mssql_close()

Ergebnisse = DB-Tabelle
Name = Spaltenname
Datum = Spaltenname mit datetime

Und in dem Feld Datum sollte nur das Datum ohne Uhrzeit erscheinen.
so: 19.04.

Ich hoffe das ist verständlicher.

Danke
Bitte warten ..
Mitglied: sputnik
27.04.2011 um 17:17 Uhr
Ich würde es gleich in der SQL-Abfrage miterledigen, MSSQL kennt viele Date-Funktionen: http://msdn.microsoft.com/en-us/library/ms186724.aspx

Versuch mal:

SELECT *, CONVERT(VARCHAR(8), getdate(Datum), 4) AS [DD.MM] from Ergebnisse WHERE Name;

Eventuell ohne getdate() ?
Bitte warten ..
Mitglied: Biber
27.04.2011 um 19:18 Uhr
Moin spytnik,

er braucht ja nur als einziges Feld das Feld namens "Datum".
Ich nenne es mal im Selectstatement "SeinDatumsfeld", sonst finden wir es nie wieder

Also sollte reichen
01.
Select LEFT(  CONVERT(VARCHAR(8), SeinDatumsfeld), 4) , 5) AS DDMM from Ergebnisse WHERE  .....
Aufgedröselt:
  • CONVERT(VARCHAR(8), SeinDatumsfeld), 4) ---> liefert als VarChar der Länge 8 Zeichen die String-Repräsentation von SeinDatumsfeld im Format 4 [deutsches Datumsformat ohne Jahrhundertangaben = dd.mm.jj].
  • d.h. bei einem SeinDatumsfeld-Inhalt vom 1.Mai 2011 steht als Zwischenergebnis der Varchar-String "01.05.11" rum.
  • von diesem Varchar-String "01.05.11" will er nur LEFT( "01.05.11", 5) = die ersten 5 Zeichen
  • AS DDMM unter dem Name DDMM, damit er dann was mit $dsatz["DDMM"] ansprechen kann.

Wie immer alles ungetestet.

P.S. @helmuthelmut2000.
Für das Benennen eines datetime-Feldes mit dem sprechenden Namen "Datum" gibt es Punktabzug in der B-Note.

Wenn ich irgendetwas an Datenbanktabellen hassen gelernt habe, dann sind es Tabellen ohne nähere Dokumentation und einer Struktur
ID  ID not null, 
TEXT Varchar(100) nullable 
DATUM date nullable 
NUMBER number nullable
Grüße
biber
Bitte warten ..
Mitglied: helmuthelmut2000
28.04.2011 um 08:55 Uhr
Hallo biber,

Ich hab das jetzt mal so versucht:

$abfrage = mssql_query("Select LEFT( CONVERT(VARCHAR(8), Datum), 4) , 5) AS DDMM from Ergebnisse WHERE Name );

Dann bekomme ich die Fehlermeldung:

Warning: mssql_query() [function.mssql-query]: message: Falsche Syntax in der Nähe von ')'. (severity 15) in C:\Apache2\htdocs

Was passt den da noch nicht?

Danke.
Bitte warten ..
Mitglied: nxclass
28.04.2011 um 09:56 Uhr
... da scheint nur ein " zu fehlen.

besser schreib es in '
01.
$abfrage = mssql_query( 'Select LEFT( CONVERT(VARCHAR(8), Datum), 4) , 5) AS DDMM from Ergebnisse WHERE Name' );
Bitte warten ..
Mitglied: SlainteMhath
28.04.2011 um 10:14 Uhr
Der fehlt kommt vom SQL Server, nicht von PHP. Das ")" vor ",4" ist zuviel.

Ich find's trotzdem immer wieder toll, wenn leute einfach mit copy&paste arbeiten anstatt sich mit den Befehlen auseinander zu setzen - deswegen gibts von mir kaum noch vorgekaute Lösungen.

Nix für ungut
Slainte
Bitte warten ..
Mitglied: helmuthelmut2000
28.04.2011 um 10:22 Uhr
Hallo,

Wenn ich das ")" vor der ",4" wegmache dann kommt der Fehler:

Notice: Undefined index: Datum in C:\Apache2\htdocs
Bitte warten ..
Mitglied: Biber
28.04.2011 um 10:24 Uhr
Moin helmuthelmt2000,

zusätzlich zu dem fehlenden Anführungszeichen würde ich mal die Sinnhaftigkeit der WHERE-Klausel überprüfen.

Eine Bedingung "...WHERE Name" erscheint mir ....ungewöhnlich.

Grüße
Biber
Bitte warten ..
Mitglied: helmuthelmut2000
28.04.2011 um 10:25 Uhr
Hallo nxclass,

Da kommt dann der Fehler:

Parse error: syntax error, unexpected T_LNUMBER in C:\Apache2\htdocs
Bitte warten ..
Mitglied: sputnik
28.04.2011 um 10:30 Uhr
Kenne Microsoft-SQL nicht, aber vielleicht bedeutet WHERE Name einfach nur WHERE Name!=''
Bitte warten ..
Mitglied: helmuthelmut2000
28.04.2011 um 10:36 Uhr
Hallo Biber,

Ich hab mal das "WHERE Name" ganz raus gemacht.
Geht aber auch nicht.

Wenn ich:

$abfrage = mssql_query("select * from Ergebnisse ");

mach dann kommen alle Datum und Uhrzeiten.

Bei:
$abfrage = mssql_query( 'Select LEFT( CONVERT(VARCHAR(8), Datum), 4) , 5) AS DDMM from Ergebnisse' );

kommt dieser Fehler:
Warning: mssql_query() [function.mssql-query]: message: Falsche Syntax in der Nähe von ')'. (severity 15) in C:\Apache2\htdocs
Bitte warten ..
Mitglied: sputnik
28.04.2011 um 10:45 Uhr
Rechts vom Datum ist eine Klammer zu viel.
Bitte warten ..
Mitglied: Biber
28.04.2011 um 10:48 Uhr
Moin helmuthelmut2000,

und wenn du die Klammer-Zu nach "Datum" weglässt?
$abfrage = mssql_query( 'Select LEFT( CONVERT(VARCHAR(8), Datum, 4) , 5) AS DDMM from Ergebnisse' );

...únd ich sach noch "...ungetestet"..

Grüße
Biber
[Edit] Upps, spytnik, deinen Kommentar hatte ich nicht gelesen vorher [/Edit]
Bitte warten ..
Mitglied: SlainteMhath
28.04.2011 um 10:55 Uhr
Ich kaufe ein "SUBSTRING" und möchte Lösen

01.
SELECT SUBSTRING(CONVERT(VARCHAR(8), Datum,4),1,5) AS DDMM from Ergebnisse
So ein Blick in die Doku wirkt wunder *hust*
Bitte warten ..
Mitglied: helmuthelmut2000
28.04.2011 um 11:24 Uhr
Hallo,

Da kommt der Fehler:

Notice: Undefined index: Datum in C:\Apache2\htdocs.. on line 47

line 47 ist aber die Zeile wo man ich das hab:

echo "<td'>" . $dsatz["Datum"] . "</td>";
Bitte warten ..
Mitglied: SlainteMhath
28.04.2011 um 11:26 Uhr
Zitat von helmuthelmut2000:
Hallo,

Da kommt der Fehler:
Notice: Undefined index: Datum in C:\Apache2\htdocs.. on line 47
Das oist kei n Fehler, sondern ein Hinweis.

line 47 ist aber die Zeile wo man ich das hab:
echo "<td'>" . $dsatz["Datum"] . "</td>";
Jo, das Feld das du mit dem Select abrufst nennt sich auch DDMM und nicht Datum
Bitte warten ..
Mitglied: helmuthelmut2000
28.04.2011 um 11:33 Uhr
Hallo,

Danke Danke.

Jetzt gehts.

Kannst du mir auch noch schreiben wie das eine saubere sache gibt?

Ich habe das jetzt so:

$abfrage = mssql_query("select * from Ergebnisse WHERE Name");

Und in meiner Tabelle ist das so:

echo "<td class='td11>" . $dsatz["Name"] . "</td>";
echo "<td class='td12>" . $dsatz["Vorname"] . "</td>";
echo "<td class='td13 tdcenter'>" . $dsatz["DDMM"] . "</td>";

Wie sollte der select.....
dann ausschauen?

Danke.
Bitte warten ..
Mitglied: SlainteMhath
28.04.2011 um 11:36 Uhr
Wie sollte der select..... dann ausschauen?

hm? hab ich das nicht vor einer guten halebn stunde schon gepostet? *kopfschuettel*
Bitte warten ..
Mitglied: helmuthelmut2000
28.04.2011 um 12:02 Uhr
Hallo,

Noch was,

Wie macht man das wenn man 2 Unterschiedliche Felder hat?

z.B. 1.Feld Datum sollte so aussehen: 01.05.
2.Feld Datum2 sollte so aussehen: 01.05.11

Danke.
Bitte warten ..
Mitglied: helmuthelmut2000
28.04.2011 um 14:17 Uhr
Hallo,

Ich habs hingekriegt.

Danke.
Bitte warten ..
Mitglied: Biber
28.04.2011 um 15:33 Uhr
Moin helmuthelmut2000,

Zitat von helmuthelmut2000:
Hallo,

Ich habs hingekriegt.

Danke.
Du weisst, dass zwar ich bei deartigen Rückmeldungen relativ abgeklärt reagiere, aber vielleicht der eine oder die andere,
die sich an der gemeinschftlichen Lösungsfindung beteiligt haben, etwas angefasst reagieren könnte?

Wenn wir hier mit gefühlten 10 Leuten an einer Lösung rumschrauben und dann kommt abschliessend "Hey, ich weiss jetzt wie es geht. Schönen Nachmittag." ....

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Windows 10
gelöst Windows 10 - Datum und Zeitfehler bei Update (3)

Frage von swisstom zum Thema Windows 10 ...

Windows Userverwaltung
gelöst Datum einer Gruppenmitgliedschaft (1)

Frage von slansky zum Thema Windows Userverwaltung ...

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

Frage von Xaero1982 zum Thema Microsoft ...

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

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...