【问题标题】:Error converting data type nvarchar to datetime SQL SERVER 2005将数据类型 nvarchar 转换为 datetime SQL SERVER 2005 时出错
【发布时间】:2015-02-13 09:12:53
【问题描述】:

当我尝试获取存储过程的结果时出现错误。从 c# 桌面应用程序中获取两个值。我写了这个程序来获取今天的日期结果

-- Add the parameters for the stored procedure here
@StartDate datetime,
@LastDate datetime
AS
BEGIN
  -- SET NOCOUNT ON added to prevent extra result sets from
  -- interfering with SELECT statements.
  SET NOCOUNT ON;

  -- Insert statements for procedure here
  SELECT * 
  from Visitor_Table 
  where Add_Date  BETWEEN @StartDate AND @LastDate
END

在我的数据库日期存储中,格式为 14/08/2014 5:18:23 PM,但是当我尝试获取今天的结果并传递值 14/08/2014 时,它显示错误

将数据类型 nvarchar 转换为日期时间时出错

我也尝试了14/08/2014 9:18:23 的值,但问题是一样的。请建议我获得今天结果的方法是什么

【问题讨论】:

  • “在我的数据库中以下列格式存储日期” - 为什么不将值存储为 datetime 值?与将它们存储为字符串相比,这将是一个好多更好的主意...
  • 没错。这里的主要问题是滥用字符串数据类型作为数据存储,而不是使用正确的字段类型开始。解决这个问题,其余的会自动整理出来,而且速度要快得多。

标签: c# sql sql-server-2005


【解决方案1】:

试试这个

SELECT * from Visitor_Table where 
convert(varchar,Add_Date , 131) BETWEEN 
convert(varchar,@StartDate , 131)
AND  convert(varchar,@LastDate , 131)

Bad Habits to Use Wrong DataTypes

【讨论】:

  • 那么使用哪种数据类型来存储日期和时间
猜你喜欢
  • 1970-01-01
  • 2012-07-23
  • 2017-05-06
  • 2016-01-20
  • 1970-01-01
  • 2017-03-23
  • 2017-03-15
  • 2017-06-11
  • 2012-02-26
相关资源
最近更新 更多