Siehe Abschnitt String Literal Date and Time Formats im Microsoft TechNet.
Sie können das Standard-ANSI-Standard-SQL-Datumsformat verwenden. Laut dem obigen Link ist es als "mehrsprachig" gekennzeichnet:
insert into table1(approvaldate) values ('2012-06-18 10:34:09')
Dies wird jedoch nicht in allen Sprachen funktionieren. Zum Beispiel, hier ist eine schnelle Skript, die dynamische SQL verwendet ein Datumsformat in allen SQL-Sprachen in sys.syslanguages definiert zu testen:
declare @sql nvarchar(4000)
declare @LangID smallint
declare @Alias sysname
declare @MaxLangID smallint
select @MaxLangID = max(langid) from sys.syslanguages
set @LangID = 0
while @LangID <= @MaxLangID
begin
select @Alias = alias
from sys.syslanguages
where langid = @LangID
if @Alias is not null
begin
begin try
set @sql = N'declare @TestLang table (langdate datetime)
set language ''' + @alias + N''';
insert into @TestLang (langdate)
values (''2012-06-18 10:34:09'')'
print 'Testing ' + @Alias
exec sp_executesql @sql
end try
begin catch
print 'Error in language ' + @Alias
print ERROR_MESSAGE()
end catch
end
select @LangID = min(langid)
from sys.syslanguages
where langid > @LangID
end
Wenn Sie dieses Skript ausführen, werden Sie viele Fehler wie folgt aus:
Fehler in der Sprache Dänisch Die Konvertierung eines Varchar-Datentyps in einen Datetime-Datentyp ergab einen Wert außerhalb des Bereichs.
Eine sprachunabhängige Option für Stringliterale ist der internationale Standard ISO 8601. Dieses Format ist sehr ähnlich zu dem ANSI-Standard mit Ausnahme eines „T“ wörtlichen zwischen dem Datum und Uhrzeit:
insert into @TestLang (langdate) values ('2012-06-18T10:34:09')
ich dies getestet, und es ist in der Tat in allen SQL-Sprachen zu arbeiten.
Danke .. Es funktioniert. Btw ist es nicht möglich, im DD-MM-YY Format einzugeben? – Shee
@RichardTheKiwi was bedeutet "5"? – Shee
@Shee siehe Fußzeile zu beantworten – RichardTheKiwi