【问题标题】:MS ACCESS SQL query to find all the columns that are of the type DatatimeMS ACCESS SQL 查询以查找日期时间类型的所有列
【发布时间】:2013-06-09 17:43:20
【问题描述】:

我必须在表中找到该列的数据类型为日期时间的所有列。

关于如何做到这一点的任何想法?

IE

 Select * FROM Table1 WHERE datatype = datetime.

【问题讨论】:

  • 您使用的是哪个 DBMS? (请将此作为标签添加到您的问题中)
  • 您需要查询元数据字典,根据您使用的 dbms 实现不同的字典

标签: sql sql-server sqldatatypes


【解决方案1】:

这里是 MS SQL Server:

select c.name as table_name, a.name as column_name
from sys.columns a
join sys.types b on a.user_type_id = b.user_type_id
join sys.tables c on a.object_id = c.object_id
where b.name = 'datetime'
and c.type = 'U'

请注意,还有其他数据类型可以保存日期:date、datetime2、datetimeoffset。要获取所有内容,请将WHERE 子句更改为:

where b.name in ('datetime', 'date', 'datetime2', 'datetimeoffset')

或

where b.name like 'date%' 

更新

Timestamp 是:

返回当前数据库的当前时间戳数据类型的值。此时间戳保证在数据库中是唯一的。返回 varbinary。

它与日期、时间或在其中存储任意数据无关。它更像是一个顺序唯一键(如 GUID)。

【讨论】:

  • timestamp 与日期和时间无关。
  • 非常感谢,这真的很有帮助,你能告诉我你在哪里找到这些信息吗?即有任何文件吗?我讨厌不得不询问堆栈溢出问题。
  • 您知道如何检查多种数据类型吗?即日期时间和日期时间2?
  • 只需更改WHERE 线索。通过select * from sys.types获取数据类型列表
  • 如果日期字段在 1 个特定日期之前,我有什么方法可以显示它们的值吗? IE。显示 1900 年之前的所有日期?
猜你喜欢
  • 1970-01-01
  • 2021-08-03
  • 2017-10-15
  • 1970-01-01
  • 2019-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多