SQL情况如果列是日期



我正在尝试弄清楚如何确定给定的列是否是日期。这是针对一个动态排序函数,该函数将零值,空字符串和0放在结果的底部。当数据类型"日期"不是ISNumeric的有效参数时,我在按日期进行排序时会遇到问题。这是我现在拥有的

ORDER BY CASE
    WHEN $FIELD IS NULL THEN 1
    WHEN ISNUMERIC($FIELD) = 0 AND $FIELD = '' THEN 2
    WHEN ISNUMERIC($FIELD) = 1 AND $FIELD = 0 THEN 3
    ELSE 4
END DESC, $FIELD 

该子句的此顺序由C#Append语句生成,并且在我尝试按日期列进行排序之前,它效果很好。关于我如何使这项工作正确的任何想法?

编辑:也许一个更好的问题是询问如何确定特定列中包含哪种类型的数据。用字符串,数字或日期进行排序的字段。此代码非常适合除日期以外的所有内容,因为在给出日期(SQL Server中的日期数据格式(值时,ISNumeric会引发错误。

您的问题有些模糊,但是您可能正在寻找isdate(...(。

相关内容

最新更新