【发布时间】:2020-11-24 10:48:48
【问题描述】:
我的问题是我们在数据库中使用Datetime 列,但我们需要在不同的日历中显示我们的日期,如回历或 Shamsi 以及 时间。
因此,复杂查询的转换成本非常高,我需要一种有效的方法来获取 时间 并将其与转换后的日期部分连接起来。
现在我正在使用这些方法
1-
CONCAT(dbo.getShamsiDate( JI.Job_start_execution_date ),' ',FORMAT(JI.Job_start_execution_date,'HH:mm:s')) AS [JobStart]
JobStart
1399/05/13 19:25:47
2-
SELECT CONVERT(VARCHAR(10), @Job_start_execution_date , 108) JobStart;
JobStart
----------
14:43:35
我的问题是这样的:
哪个更快或更适合,有没有更快的方法?
【问题讨论】:
-
格式可能是slowest。
CAST(... as Time)也是一种可能。 -
同意
FORMAT可能是最慢的。对于单个标量值来说它“很好”,但它的扩展性很差。如果您确实需要格式化字符串,但由于某种原因无法在表示层中完成,那么带有样式代码的CONVERT是您的最佳选择。
标签: sql-server datetime time sql-server-2016