Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MSSQL Datumsformat ändern (https://www.delphipraxis.net/109597-mssql-datumsformat-aendern.html)

Overburn 4. Mär 2008 09:56

Datenbank: MSSQL Express • Version: 2005 • Zugriff über: Stored Procedure

MSSQL Datumsformat ändern
 
Moin,

ich bin gerade dabei eine StoredProcedure zu bauen. Dafür benötige ich allerdings alle Teile des Datums in zwei Stellen. Also statt 04.03.2008 04.03.08.
Wie kann ich das anpassen?

Gruß,
Stefan

mkinzler 4. Mär 2008 10:07

Re: MSSQL Datumsformat ändern
 
Anzeigedatumsformat ändern.

Overburn 4. Mär 2008 10:13

Re: MSSQL Datumsformat ändern
 
Soweit konnt ich auch schon denken...

WIE geht das?

mkinzler 4. Mär 2008 10:15

Re: MSSQL Datumsformat ändern
 
Wie sieht die SP aus?

Overburn 4. Mär 2008 10:22

Re: MSSQL Datumsformat ändern
 
Noch ist da garnichts. Ich weiß aber, dass diese Funktion elementarer bestandteil sein wird.

Im großen und ganzen brauche ich eine Storedprocedure,
die ein Feld aus der Datenbank liest. In diesem stehen das aktuelle Jahr, der aktuelle Monat und der Tag als String. Die entsprechenden Teile sollen miteinander verglichen werden und bei nichtübereinstimmung entsprechend auf den aktuellen Wert geändert werden. Dann soll da noch eine laufende Nummer angehangen werden.

Gruß
Stefan

shmia 4. Mär 2008 10:23

Re: MSSQL Datumsformat ändern
 
Zitat:

Zitat von Overburn
ich bin gerade dabei eine StoredProcedure zu bauen. Dafür benötige ich allerdings alle Teile des Datums in zwei Stellen. Also statt 04.03.2008 04.03.08.

Wozu ??
Ein Datum sollte immer im internen Format transportiert werden!
Erst an der Benutzeroberfläche findet eine Umwandlung in einen menschenlesbaren String statt.

Folgende SP macht einen grossen Fehler: Datum wird als String übergeben
SQL-Code:
CREATE PROCEDURE test_bad @tag varchar(4), @monat varchar(2), @jahr varchar(2) AS ...
So wäre es richtig
SQL-Code:
CREATE PROCEDURE test_good @datum DATE AS ...

Overburn 4. Mär 2008 10:28

Re: MSSQL Datumsformat ändern
 
Die Sache ist die.
Die Teile sind bestandteil einer Auftragsnummer die folgendes Format hat:

JJ6DDMM

Das ganze dient dazu um eine eindeutige ID zuzuweisen. Da leider auch ein Fremdsystem damit arbeiten muss, welche sich die Nummer aus unserer Datenbank holt, MUSS das so passieren. Da eine Anpassung des Fremdsystems nicht vorgesehen ist.

Gruß,
STefan

shmia 4. Mär 2008 10:34

Re: MSSQL Datumsformat ändern
 
SQL-Code:
Liefernr = CAST(YEAR(datum) as varchar(2)) + '6' + CAST(MONTH(datum) as varchar(2))+CAST(DAY(datum) as varchar2)

generic 4. Mär 2008 11:52

Re: MSSQL Datumsformat ändern
 
Es gibt die Funktion Datepart:
MSDN LIB. DatePart

omata 4. Mär 2008 22:02

Re: MSSQL Datumsformat ändern
 
Vielleicht so...

SQL-Code:
DECLARE @datum DATETIME
DECLARE @datumSTR VARCHAR(8)

SELECT @datum = '4.3.2008'
SELECT @datumSTR = CONVERT(VARCHAR, @datum, 4)
PRINT @datumSTR
Das Datum so zu verarbeiten ist allerdings nicht sinnvoll. Aus dem Jahrtausendwechsel-Problem sollte man etwas lernen!

Gruss
Thorsten


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:27 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