Permalänk

Create Table i SQL - Datum

Jag har en (förmodligen) enkel fråga. Om jag skapar ett table enligt nedan:

CREATE TABLE Test
(Sid INT NOT NULL,
Kid INT NOT NULL,
Moment VARCHAR (15) NOT NULL,
Datum Date,
Resultat CHAR (3) NULL,
CONSTRAINT skmId PRIMARY KEY (Sid, Kid, Moment))

Om jag sedan försöker lägga in en string (eller annat blajj) i fältet för Datum, kommer detta då automatiskt generera ett fel, eller måste jag skapa någon form av regel i databasen för hur ett giltigt datumformat skall se ut? Om så, hur ser i såfall en sådan regel ut?

Permalänk
Medlem

Skiter den inte i vad du lägger där och lägger automatiskt in datum? Varför inte testa själv?

Permalänk
Medlem

Vet att jag har fått fel i sådana fall när jag kört ASP och Access/MSSQL.

Permalänk

Kommer att testa på fredag. Tänkte vara lite förberedd bara. Därför posten. Har ingen möjlighet att testa förrän då. Så har någon tips / Lösning, posta gärna

Permalänk
Hedersmedlem

Datumfält är datumfält, de lagrar inte text så den kommer självklart att generera ett fel om du försöker mata in 'blaj' i det fältet.

Visa signatur

Nämen hej!

Permalänk
Medlem

MySql Manual | 6.2.2.2

Citat:

You can specify DATETIME, DATE, and TIMESTAMP values using any of a common set of formats:

* As a string in either 'YYYY-MM-DD HH:MM:SS' or 'YY-MM-DD HH:MM:SS' format. A ``relaxed'' syntax is allowed--any punctuation character may be used as the delimiter between date parts or time parts. For example, '98-12-31 11:30:45', '98.12.31 11+30+45', '98/12/31 11*30*45', and '98@12@31 11^30^45' are equivalent.
* As a string in either 'YYYY-MM-DD' or 'YY-MM-DD' format. A ``relaxed'' syntax is allowed here, too. For example, '98-12-31', '98.12.31', '98/12/31', and '98@12@31' are equivalent.
* As a string with no delimiters in either 'YYYYMMDDHHMMSS' or 'YYMMDDHHMMSS' format, provided that the string makes sense as a date. For example, '19970523091528' and '970523091528' are interpreted as '1997-05-23 09:15:28', but '971122129015' is illegal (it has a nonsensical minute part) and becomes '0000-00-00 00:00:00'.
* As a string with no delimiters in either 'YYYYMMDD' or 'YYMMDD' format, provided that the string makes sense as a date. For example, '19970523' and '970523' are interpreted as '1997-05-23', but '971332' is illegal (it has nonsensical month and day parts) and becomes '0000-00-00'.
* As a number in either YYYYMMDDHHMMSS or YYMMDDHHMMSS format, provided that the number makes sense as a date. For example, 19830905132800 and 830905132800 are interpreted as '1983-09-05 13:28:00'.
* As a number in either YYYYMMDD or YYMMDD format, provided that the number makes sense as a date. For example, 19830905 and 830905 are interpreted as '1983-09-05'.
* As the result of a function that returns a value that is acceptable in a DATETIME, DATE, or TIMESTAMP context, such as NOW() or CURRENT_DATE.

Illegal DATETIME, DATE, or TIMESTAMP values are converted to the ``zero'' value of the appropriate type ('0000-00-00 00:00:00', '0000-00-00', or 00000000000000).

Visa signatur

"Hardware is the part of the computer that can be kicked"