Ja, je moet die parameter nog van een waarde voorzien, maar ik denk niet dat je je bezig zult moeten gaan houden met het formaat van die datum dan.
Ik zal het ff uittesten.
Ik heb het net ff geprobeerd, en mijn stelling klopt.
Ik heb een tabel die er als volgt uit ziet (MS SQL Server)
PrimKey : integer, autonumber
EenDatum : datetime
Mijn stored procedure doet niets anders dan een record inserten:
code:
1
2
3
4
5
6
7
8
9
| CREATE PROCEDURE InsertRecord ( @p_Datum DATETIME )
AS
BEGIN
INSERT INTO myTabel ( EenDatum )
VALUES
( @p_datum )
END |
Ik heb de procedure als volgt aangeroepen:
code:
1
2
| EXEC InsertRecord '1976-01-12' ;
EXEC InsertRecord '12-05-1982'; |
Dit leverde iedere keer een juist resultaat op. (Query Analyzer)
Echter, als ik in Query Analyzer het volgende doe:
code:
1
| EXEC InsertRecord '14-12-1978'; |
dan krijg ik een fout.
DD-MM-YYYY wordt blijkbaar niet herkend.
code:
1
| EXEC InsertRecord '12-14-1978' |
werkt dan weer wel.
Note dat m'n date-separator op '-' staat.
Ik heb dan ook eens geprobeerd om die procedure vanuit C# uit te voeren:
code:
1
2
3
4
5
6
7
8
9
10
| SqlCommand cmd = new SqlCommand ();
cmd.Connection = conn;
cmd.CommandText = "insertorder";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add ("@p_date", SqlDbType.DateTime);
cmd.Parameters["@p_date"].Value = "14/12/1985";
cmd.ExecuteNonQuery(); |
Hier werkt het formaat DD/MM/YYY dus wel. Let er ook op dat ik hier / gebruik als date-separator, terwijl m'n date-separator op '-' staat.
[
Voor 81% gewijzigd door
whoami op 06-05-2003 19:38
]