【发布时间】:2010-10-31 08:35:30
【问题描述】:
我有一个旧版 SQL Server 2000 数据库,该数据库有一列的日期存储为 varchar 而不是 datetime,无论出于何种原因。我想查看这些数据并使用日期时间字段而不是 varchar 来更轻松地针对该字段进行报告。好消息是,大多数值看起来应该可以直接转换为日期时间。
当然,显然有些字段以无法转换为日期时间的方式输入。为清楚起见,表格如下所示:
CREATE TABLE dbo.user
(
...
birthdate varchar(10)
...
)
视图可能如下所示:
CREATE VIEW dbo.UserView
AS
SELECT ...
CAST(u.birthdate AS datetime) AS birthdate
...
FROM user u
WHERE ...
我有什么办法:
- 获取无法将生日日期转换为日期时间的所有行的列表,以防我修复它?
- 在我无法修复该值的情况下,让该值显示为 NULL 或什至可能是明显不是用户真实生日的值?
【问题讨论】:
标签: sql-server datetime sql-server-2000 casting varchar