SQL DATE



  • Hallo zusammen,

    ich habe folgendes Problem. Ich möchte über DBvis auf meinem SQL Server 2005 eine Tabelle anlegen.

    CREATE
    TABLE "JDBCTESTDB"."PROTOCOLS"
    (
    "PRC_ID" INTEGER NOT NULL,
    "PRC_CHANGE_ID" INTEGER,
    "PRC_DATE" DATE NOT NULL,
    "PRC_USR_ID" CHAR(5),
    "PRC_PROTOCOLTYP_ID" CHAR(1),
    "PRC_OLD_VALUE" VARCHAR2(256),
    "PRC_NEW_VALUE" VARCHAR2(256),
    "PRC_TACT_ID" INTEGER NOT NULL,
    "PRC_FIELD" VARCHAR2(30),
    "PRC_USRROLE_ID" CHAR(4),
    "PRC_REMOTE_HOST" VARCHAR2(64),
    CONSTRAINT "PK_PROTOCOLS" PRIMARY KEY ("PRC_ID") )

    Dabei bekomme ich diesen Fehler:

    11:41:37 [CREATE - 0 row(s), 0.000 secs] [Error Code: 2715, SQL State: HY000] [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Column, parameter, or variable #3: Cannot find data type DATE.

    Wie bekomme ich mein Datumsfeld angelegt ?

    Gruß

    Michael



  • versuch DateTime



  • Ich rolle das alte Thema gleich mal auf, da seht ihr das ich die Suche bennutzt habe und die Frage passt auch rein. 😉

    Ich habe eine Aufgabe: Geben sie das Eintrittsdatum aus ohne Uhrzeit.
    Mit DATEPART kann ich mir zwar einen Teil wie Monat, tag jahr anzeigen lassen, allerdings mache ich da jedesmal neue Spalten. Also so:

    SELECT DATEPART(DAY, Datum), DATEPART(MONTH, Datum), DATEPART(YEAR,Datum) FROM Bestellungen

    Ich habe die Aufgabenstellung allerdings so verstanden das das komplette datum zusammen steht.

    Könnt ihr mir da evtl helfen wie ih das verknüpfe?



  • du kannst das Datum in einen String umwandeln, der einem bestimmten Zeitformat entspricht, z.B.:

    Convert(varchar(12),@date,104)
    

    weitere Informationen hierzu: MSDN



  • Wenn Du das öfter machts, und z.B. wegen der Sortierung auch keinen String haben willst, dann bietet sich eine kleine Funktion, wie diese, an:

    SET QUOTED_IDENTIFIER ON 
    GO
    SET ANSI_NULLS ON 
    GO
    
    ALTER  FUNCTION Func.GETDATEPART (@dt DATETIME)  
    RETURNS DATETIME AS  
    BEGIN 
    	RETURN CONVERT(datetime, FLOOR(CONVERT(float, @dt)))
    END
    
    GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
    

    Die Abfrage wäre dann z.B. wie folgt:

    Select Func.GETDATEPART(getdate())
    

Anmelden zum Antworten