Datenbank: SQL 2005 • Version: Beta • Zugriff über: ADO
SQL Server und Zeiteingabe
Hi,
kann mir jemand sagen ob ich im SQL Server ein Time Feld machen kann?, Also das in der Tabelle nur der Zeit wert drin steht? ohne datum? Danke. |
Re: SQL Server und Zeiteingabe
Hai renekr,
ich glaube der MS-SQL kennt kein reines Zeitfeld. In der Regel ist dies aber auch nicht schlimm. Du kannst ja deine Zeiten in einem DateTime-Feld speichern aber bei Abfragen nur den Zeitanteil berücksichtigen. |
Re: SQL Server und Zeiteingabe
Hi,
ja klar,aber ich will den Tabellen Inhalt in einem Grid anzeigen und da soll nur daer Time Wert angezeigt werden. Speicehrn tu i nur de Time wert, also steht 30.12.1899 davor. das macht mir nix aus , wenn das mit dem DBGrid gehn würde? Kann man das DATETIME Feld beim anzeigen im Grid als Time handln? Danke. |
Re: SQL Server und Zeiteingabe
Du kannst im FieldEditor des Dataset beim entsrpechenden Feld das displayformat auf hh:nn:ss setzen.
|
Re: SQL Server und Zeiteingabe
Hi,
Danke. Wo genau mach i das ?Direkt im ADOQuery? unter Parameter? Ich kann ja ev auch direkt im SQL String das DATE_Format oder Convert anwednen. SQL String ist ein normaler Select * from das ich alles zurückbekomme. Danke. |
Re: SQL Server und Zeiteingabe
Hai renekr,
es gibt zwei Wege. Beim ersten machst Du das im ObjektInspector für die Felder des Query
oder einfacher ;
Delphi-Quellcode:
Die erste Methode hat einen großen Nachteil. Wenn Du später ein Feld in deiner Tabelle hinzufügst würde dieses nicht mehr im Query verfügbar sein da dieses nur noch die Felder berücksichtig welche im FeldEditor eingetragen sind.
procedure TForm1.ADOQuery1AfterOpen(DataSet: TDataSet);
begin (DataSet.FieldByName('zeit') as TDateTimeField).DisplayFormat := 'hh:mm:ss'; end; |
Re: SQL Server und Zeiteingabe
WOW,
Ihr seit echt die Größten. Bis jetzt wurde jedes Problem von mir wirklich sehr schnell und mit viel Anganement gelöst. Respekt für das Forum. Einsame Spitze. :angel: Ich habe es auch hinbekommen,aber viel Umständlicher. Select * from Tabelle; mit select convert(varchar,uhrzeit_ab,108)as Uhrzeit_ab),ID,name usw, from Tabelle; ersetzt. Aber werde die Funktion von Sharky einsetzen,die ist am einfachsten und man muß bei ändrungen in der Tabelle nicht den Source anpassen. Wirklich großes Lob an euch. Danke. |
Re: SQL Server und Zeiteingabe
Zitat:
Noch einen kleinen Tipp: Wenn Du für die Anzeige die sekunden nicht brauchst solltest Du anstelle von:
Delphi-Quellcode:
diesen Code nehmen:
(DataSet.FieldByName('zeit') as TDateTimeField).DisplayFormat := 'hh:mm:ss';
Delphi-Quellcode:
Dann ist die Zeitanzeige so wie sie vom Anwender in der Systemsteuerung des OS eingestellt wurde.
(DataSet.FieldByName('zeit') as TDateTimeField).DisplayFormat := ShortTimeFormat;
|
Re: SQL Server und Zeiteingabe
Sowas geht auch direkt in einer SQL-Anweisung.
Gibt das Datum aus...
SQL-Code:
Gibt die Uhrzeit aus...
SELECT CONVERT(VARCHAR, datum, 104)
SQL-Code:
MfG
SELECT CONVERT(VARCHAR, datum, 108)
Thorsten |
Re: SQL Server und Zeiteingabe
Zitat:
bei dieser Methode wird aber das Datums/Zeitformat im SQL-Code vorgegeben. Es wird also unabhängig von den Einstellungen der Regionsoptionen des Benutzers angzeigt. Dies finde ich persönlich nicht so gut. Ein Programm sollte Datums/Zeitwerte immer so anzeigen wie ich es an meinem Computer eingestellt habe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz