转换varchar日期 - 如何使其成为实际的DATE输入而不是Char?

时间:2014-05-21 21:07:05

标签: sql sql-server excel date

所以我使用的是MS SQL,我得到了这个日期,我想投入US 101格式 - 所以我这样做:

convert(varchar(10),sat.StartDateTime,101) as AptStartDate
convert(varchar(10),sat.EndDateTime,101) as AptEndDate

用完 - 出来太棒了 - 太棒了 - 但是

当我尝试导出到Excel时 - 我运行一个过滤器 - 它将日期视为一个角色(这是有道理的,因为它是一个varchar)而不是一个日期。

我知道有很多方法可以解决这个问题,但是 - 我知道 - 是否可以获得相同的USA 101格式并将其保存为DATE文件而不是将其作为varchar?

我尝试使用

cast(sat.StartDateTime as DATE) 

但是,在我不想要的实际日期结束时将它导出为ex​​cel时,这似乎给了我一些时间。

2 个答案:

答案 0 :(得分:1)

如果您可以先设置列NumberFormat,那么您可以安全地将日期作为yyyy-mm-ddCONVERT中的120)传递。

(至少在格式为dd.mm.yyyy的德语Excel版本中也是如此。)

答案 1 :(得分:0)

感谢Squillman的评论 - 决定调查从我的SQL查询创建报告的Microsoft Visual Studio - 这反过来又生成了Excel。

答案很简单 - 将表的属性更改为月/日/年格式 - 并在excel中生成正确的日期格式。