在数据库中接受英国日期格式

时间:2014-07-28 10:02:22

标签: sql sql-server sql-server-2008

我将有效的英国日期28/07/2014 10:53:46发送到我的数据库以插入。但是,以下声明中说The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value

INSERT INTO user_Log (Id,IP,DateTime) 
VALUES (6, '127.0.0.1', '28/07/2014 10:53:46');

但如果我像下面那样交换数据和月份部分就行了。我应该在数据库中进行哪些更改以接受英国日期格式?

INSERT INTO user_Log (Id,IP,DateTime) 
VALUES (6, '127.0.0.1', '07/28/2014 10:53:46');

3 个答案:

答案 0 :(得分:0)

您可以尝试将语言设置为英语:

SET LANGUAGE 'british english'

或将日期格式设置为dd / mm / yyyy

SET DATEFORMAT dmy;

也看看这个:

http://msdn.microsoft.com/en-us/library/ms189491.aspx

答案 1 :(得分:0)

您可以使用以下查询更改sql server中的默认日期格式:

SET DATEFORMAT mdy; 

答案 2 :(得分:0)

你可以使用好的'老式字符串操作来交换月和日:

declare @DATE_INPUT varchar(19); set @DATE_INPUT = '28/07/2014 10:53:46'

declare @US_DATE varchar(19)
set @US_DATE = SUBSTRING(@DATE_INPUT,4,2) + '/' + LEFT(@DATE_INPUT, 2) + RIGHT(@DATE_INPUT, 14)

INSERT INTO user_Log(Id,IP,DateTime)
VALUES(6, '127.0.0.1', @US_DATE);