2011-05-03 28 views
1

我有一个由C#发送的SQL查询system.data.odbc OdbcCommand对象。使用C#odbc从datetime中选择时间值或日期值

SELECT Calldate 
    FROM calls; 

Calldate列是日期时间类型。

我希望select语句只返回值的日期部分。 DateValue函数似乎没有做任何事情。我希望在提供给OdbcCommand对象的SQL中实现这一点。

编辑1:被查询的资源是一个访问mdb文件。

+1

有一对夫妇的格式,你可以[CAST /值转换为不包括时间部分(http://msdn.microsoft.com/en-我们/库/ ms187928.aspx)... – 2011-05-03 04:52:11

+0

SELECT CONVERT(DateTime,Calldate,103)FROM Calls; - 这回复未定义的功能。 SELECT CAST(Calldate AS varchar)FROM调用; - 这回复语法错误。 – Ablue 2011-05-03 05:17:05

+0

当从数据库中检索数据时,您可以选择在c#中获取日期或时间部分。在很多情况下,性能可以相媲美。 – 2011-05-03 05:24:10

回答

1

鉴于您正在使用SQL Server,你可以转换的日期时间

 

select convert(datetime, CallDate, x) from calls 
 

x可以代表不同的日期格式的不同符号/数值。看到这个链接的所有不同的数值,以及他们输出的例子。

http://linesofcode.net/snippets/45

EDIT(基于事实,OP使用访问,而不是SQL服务器)

您可以使用MS格式功能格式化任何字符串:

 

SELECT Format(CallDate,'yyyy/mm/dd') FROM calls 
 

更多格式选项这里:http://www.webcheatsheet.com/SQL/access_functions/format.php

+0

,如果它通过odbc查询访问mdb文件? – Ablue 2011-05-03 05:17:47

+0

你假设我们正在使用MS SQL Server数据库。我们不是。 CAST和CONVERT在MS Access中不起作用。 – 2011-05-03 05:26:03

+0

当他写道我没有提供这些信息。抱歉。 – Ablue 2011-05-03 05:27:52

0

如何 -

select datevalue(Calldate) from calls;

其他功能上市here

+0

对不起,正如问题所述。该功能不起作用。 – Ablue 2011-05-03 14:45:15

相关问题