使用转换日期时间列过滤是否更大

时间:2015-09-29 14:22:01

标签: sql-server

我选择了两个

SELECT
    EMPLOYEE.EMP_EMPNO,
    CONVERT(VARCHAR(12), PAYHIST.PH_DATE,101) AS DATE,
    CONVERT(VARCHAR(5), PAYHIST.PH_LASTCLOCK,108) AS Time,
    CONVERT(VARCHAR(5), SHIFT.SFT_END,108) AS Time 

将两列转换为仅显示Time,只希望它显示Payhist.PH_Lastclock < Shift.Shift_End但是不能让我的where子句读取转换后的列值。

如果未转换列,则显示如下:

early Out Report

2 个答案:

答案 0 :(得分:0)

如果您要将where子句中的字段转换为VARCHAR,则还需要将它们转换回DATETIME字段。

试试这个:

WHERE CONVERT(DATETIME,CONVERT(VARCHAR(5), PAYHIST.PH_LASTCLOCK,108)) < CONVERT(DATETIME,CONVERT(VARCHAR(5), SHIFT.SFT_END,108))

答案 1 :(得分:0)

此链接将帮助您,更好地了解时间比较。

https://stackoverflow.com/a/808507/979011