将DateTime转换为Int格式的最佳方法

Dav*_*ein 10 t-sql sql-server-2000

我需要将Datetime字段转换为特定格式的INT类型.例如,我想 2000-01-01 00:00:00.000转换为20010101.

在查询中进行比较以进行比较的最高效方法是什么?

就像是:

DATEPART(year, orderdate) * 10000 + DATEPART(month, orderdate) * 100 + 
    DATEPART(day, orderdate)
Run Code Online (Sandbox Code Playgroud)

要么

cast(convert(char(8), orderdate, 112) as int) 
Run Code Online (Sandbox Code Playgroud)

什么是最高效的方法?

Lit*_*les 22

你的例子cast(convert(char(8), orderdate, 112) as int)对我来说似乎很好.它可以快速将日期缩减到您需要的格式并转换为int.

从执行计划的角度来看,两者之间似乎没有区别.