没有时间的日期

时间:2012-02-22 18:34:15

标签: sql sql-server-2005

我正在使用SQL Server 2005。

我有一个名为purchase_time的列,类型为datetime。如何选择带有时间部分的此列 - 只是日期。

谢谢,

巴里

修改 获取日期时间并通过Python在第一个空格中拆分它是否安全,或者这种格式是否依赖于区域设置?

2 个答案:

答案 0 :(得分:4)

在版本< 2008(基于对某些答案的其他评论,我相信你正在运行),最有效的方法是将其保持为日期时间类型并使用日期数学来避免字符串转换。

SELECT DATEADD(DAY, DATEDIFF(DAY, '20000101', purchase_time), '20000101') 
  FROM dbo.table;

修改

如果您希望日期仅用于显示目的,而不是用于计算或分组,那么最好在客户端处理。你可以在SQL中简单地说:

SELECT dt = CONVERT(CHAR(10), purchase_time, 120)
  FROM dbo.table;

答案 1 :(得分:1)

在SQL Server 2008中,您可以使用新添加的date类型:

select convert(date, purchase_time) from TableName

<强>更新

在SQL 2008之前的版本中,我使用以下解决方案来解决此问题:

select convert(datetime, convert(int, convert(float, purchase_time)))
from TableName