这也许是一个非常简单的问题。
我在Excel中有一个非常基本的查询,该查询从Sql Server 2008 R2上的数据库中提取一些值。
此数据库中的日期字段存储为datetime。在此查询中,我对时间部分不感兴趣,因此只想选择日期。我尝试使用Cast或Convert,但是都将sql中的日期(yyyy-mm-dd)返回到Excel。Excel将其识别为文本而不是日期,因此,一旦数据在Excel中,我将无法在表格中进行日期过滤。
如果我在Excel中执行datepart(),它将显示为日期并且可以按预期进行过滤,但是我希望直接来自查询的数据作为Excel可以进行过滤的日期值返回。
以下是我的示例查询:
SELECT order_header.oh_id,
order_header.oh_order_number,
order_header.oh_datetime,
convert(date, order_header.oh_datetime, 103) as 'ConvertOrderDate',
cast(order_header.oh_datetime as date) as 'CastOrderDate'
FROM order_header
WHERE order_header.oh_datetime >= '2013-09-01'
将其返回到Excel时,将返回以下内容:
我实际上没有找到任何答案就找到答案了:)
SELECT order_header.oh_id,
order_header.oh_order_number,
order_header.oh_datetime,
DATEADD(dd, DATEDIFF(dd, 0, order_header.oh_datetime), 0) as 'OrderDate'
FROM order_header
WHERE order_header.oh_datetime >= '2011-09-01'
这返回为日期时间,但时间为00:00,因此我可以简单地在Excel中设置其格式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句