sql—迭代表中的所有值,检查是否有任何值的类型是datetime,然后更改其格式

ars1skjm  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(283)

我在SQLServer表中创建了一些动态列,我想知道哪个动态列具有 datetime 类型值。
我把所有的数据都放在一个数据表里然后 select * from datatable; 但是现在我不知道如何迭代每一个值来知道哪个值是有用的 datetime 类型。

qlvxas9a

qlvxas9a1#

假设已将数据加载到数据表中,则可以通过以下命令检查列的数据类型是否为date:

Select 
isDate(columnName)
from datatable;

也可以在多个列上执行。上面的代码只是一个如何使用isdate检查列值是否为日期格式的示例。

fzwojiic

fzwojiic2#

可以使用系统目录查找类型。

CREATE TABLE test(a int, b datetime)

SELECT c.name,ty.name 
FROM sys.columns as c
join sys.tables as t
on c.object_id = t.object_id
join sys.types as ty
on ty.system_type_id = c.system_type_id
where t.name = 'test'
+------+----------+
| name |   name   |
+------+----------+
| a    | int      |
| b    | datetime |
+------+----------+

相关问题