2010-03-24 73 views
1

这就是我想要的。但是我只放了一个指定的日期。如何从sql服务器获取日期

SELECT BookName, Author, BookPrice 
FROM Book 
WHERE Book.Book_ID = ( 
    SELECT Book_ID 
    FROM Temp_Order 
    WHERE Temp_Order.User_ID = 25 AND Temp_Order.OrderDate='3/24/2010' 
) 

这是我使用的日期函数。但也需要时间。如何阻止它。请帮我

SELECT Book_ID, BookName,Author,BookPrice 
FROM Book INNER JOIN FavCategory ON Book.Category_ID = FavCategory.Category_ID 
WHERE FavCategory.User_ID = " + useridlabel.Text + " AND 
     OrderDate = **GETDATE()** 
+2

这并不直接回答你的问题,所以我会将它作为评论添加。如果您使用SQL 2008,则可以考虑在OrderDate字段中使用新的“Date”数据类型而不是DateTime。 – JohnFx 2010-03-24 14:54:01

回答

0

这是2008年以前的SQL Server版本的经典问题:

SELECT Book_ID, BookName,Author,BookPrice 
FROM Book INNER JOIN FavCategory ON Book.Category_ID = FavCategory.Category_ID 
WHERE FavCategory.User_ID = " + useridlabel.Text + " 
AND CONVERT(nvarchar, OrderDate, 111) = CONVERT(nvarchar, GETDATE(), 111) 

根据code(111)在结尾让你可以格式化日期为你所在的区域。

+0

非常感谢。谢谢。 – Nubkadiya 2010-03-24 15:20:10

2
SELECT CONVERT (date, GETDATE()) 

MSDN

+0

感谢你的快速消息 我发现这个 CONVERT(日期,GETDATE()) 但在这里什么是“日期”?它是列名吗?可以请我向我解释 – Nubkadiya 2010-03-24 14:56:16

+0

是一个数据类型,与SQL Server 2005及以上 – 2010-03-24 15:00:23

+0

SELECT BookName,Author,BookPrice FROM Book WHERE Book.Book_ID =(SELECT Book_ID FROM Temp_Order WHERE Temp_Order.User_ID = 25 AND Temp_Order.OrderDate = CONVERT(日期,GETDATE())) 这是我获得的消息 消息243,级别16,状态1,行1 类型日期不是定义的系统类型。 – Nubkadiya 2010-03-24 15:01:24

3

这一个是SQL Server 2000:

SELECT CONVERT(DATETIME, FLOOR(CONVERT(FLOAT, GETDATE()))) 
0

尝试:

OrderDate = CONVERT(varchar, GETDATE(), 101) 

至极返回格式毫米日期/ dd/yyyy,或选择一个骗局vertove格式从here

+0

嗨朋友,感谢所有的评论。无论如何,当我插入日期。无需发送时间。只有日期才会被保存。即使我这样做,它会节省时间为12.00。反正有吗?如果我能找到我可以解决我的问题 – Nubkadiya 2010-03-24 15:07:16

+0

不,您将不得不保存日期和时间,因为没有日期类型。您必须将日期时间始终转换为日期,并使用convert来与其一起工作,就像它是日期一样。 – 2010-03-24 15:09:35

0
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) 
相关问题