尝试将日期传递到存储过程中,如下所示:
@dateRegistered = '28/04/2012'
但它一直告诉我:
将数据类型 varchar 转换为日期时出错。
如果我这样做,它会起作用:
@dateRegistered = '04/28/2012'
但这不是我想要使用的格式。
我已运行以下查询来设置格式:
SET DATEFORMAT dmy
为什么它不起作用?
编辑:这是我的做法:
在我的存储过程中,我放了:
SET DATEFORMAT dmy
然后从代码中,我将其传递为:
myCommand.Parameters.Add("@dateRegistered", SqlDbType.Date);
myCommand.Parameters["@dateRegistered"].Value = DateTime.Now.ToString("dd/mm/yyyy");
我将它作为字符串传递以确保即使我的计算机(或服务器)具有不同的日期格式,它也将始终使用 dmy。
编辑编辑:
我将它作为 datetime.now 传递。我发的时候好像是把它转换成默认格式,我读的时候又把它转换回我的电脑格式。不确定这是如何发生的,但它似乎工作正常。