我想从数据库里搜索出日期是我输入的日期数据。因为数据库里的数据类型是datetime包含时间,而我用的一个梅花雨日期,自动选择一个日期那种,格式只包含日期例如:2010-8-25;因此存储过程里我用的like语句,但是数据没搜出来,麻烦各位看看
USE [fls_data]
GO
/****** Object:  StoredProcedure [dbo].[daymenu]    Script Date: 08/25/2010 16:45:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GOALTER PROCEDURE [dbo].[daymenu]
@o_date VARCHAR(50)
   
   
AS
BEGIN

SET NOCOUNT ON;
     -- Insert statements for procedure here
SELECT menu_id,menu_name,menu_price,quantity from orderlist where o_date like @o_date
END

解决方案 »

  1.   

    SELECT menu_id,menu_name,menu_price,quantity from orderlist where o_date like '%'+@o_date+'%'
      

  2.   

    额,貌似不能直接查的吧 , 要不用to_char函数给转成字符串的, 要不, 只能给定个时间段永between and来查
      

  3.   

    额, 转成字符串了, 也是数字。 。没啥规律好说的。 。。like不好。 。。
      

  4.   


    SELECT menu_id,menu_name,menu_price,quantity from orderlist where  datediff(day, o_date,cast(@o_date as datetime))=0
      

  5.   

    日期和时间一般用between and
    或是>、<、或大于等,小于等来查询
      

  6.   

    如果一定要用like那就先把表里的字段转换为varchar再进行like匹配
      

  7.   

    你数据库不是datetime类型吗? 直接查就可以了
    至于你担心的字符串问题,不用担心哈,会自动转换
      

  8.   

    8楼解释很清楚了日期和时间一般用between and
    或是>、<、或大于等,小于等来查询
      

  9.   

    恩,谢谢各位了,把7楼哥的copy去就OK了