• With an appropriate index*, the first 2 can do an index seek to get the data. The third, since it has functions applied to the columns, will do at best an index scan.

    The first 2 are functionally identical and, if you check the exec plan, you'll notice that SQL converts between into the <=, >= construct.

    If there are no indexes on tabledatetime, all three will likely be about the same

    * Appropriate index should be a covering one, tabledatetime as the leading column and the columns in the select either as other index key columns, or as include columns

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass