我可以在SQL Server 2008 R2中传递时间或日期数据类型的格式吗?
示例:仅具有hh:mm
之类的时间格式的列
我搜索发现,我可以像下面这样传递分数的小数位数,但这将满足hh:mm:ss
秒的时间格式,我只想要hh:mm
注意
我不想在select语句中避免这种情况,这在使用Crystal Reports中的列时不会帮到我,并且我无法在Crystal Reports中对其进行格式设置,格式对象选项中没有日期时间选项卡< / p>
_HOUR time(0);
答案 0 :(得分:0)
我不想在select语句中避免这种情况... 我无法在水晶报表中设置其格式
但是您确实需要一条select语句来生成报告,因此一种方法是在convert()函数中使用“样式号”(8)-但是您只需要前5个字符,因此请使用char(5 )的结果。即
select convert(char(5), [datetime_or_time_column] ,8) as "hh:mm"
from thetables
您根本不会指示如何收集报告数据,但是如果使用临时表或存储过程(甚至是视图),则可以在生成结果时使用上面的转换语法。注意可以像这样format(getdate(),'HH:mm')
来使用T-SQL的format(),但这通常比使用convert()慢。
如果您有权向表中添加计算列,并且此hh:mm数据具有确定性,则还可以对计算列使用上面显示的转换语法。