Jas*_*ker 2 sql-server datetime varchar casting sql-server-2000
我有一个遗留的SQL Server 2000数据库,其中有一列具有一个日期,无论出于何种原因,该日期都存储为varchar而不是datetime.我想对这些数据进行查看,并使用datetime字段而不是varchar来更轻松地对字段进行报告.好消息是,大多数值看起来应该能够直接投射到日期时间.
当然,显然有一些字段以这样的方式输入,即它们不能转换为日期时间.为了清楚起见,这是表格的外观:
CREATE TABLE dbo.user
(
...
birthdate varchar(10)
...
)
Run Code Online (Sandbox Code Playgroud)
视图看起来像这样:
CREATE VIEW dbo.UserView
AS
SELECT ...
CAST(u.birthdate AS datetime) AS birthdate
...
FROM user u
WHERE ...
Run Code Online (Sandbox Code Playgroud)
有什么办法可以:
使用IsDate()
SELECT birthdate, ' ' _, *
FROM user u
WHERE IsDate(u.bithdate) != 1
Run Code Online (Sandbox Code Playgroud)
和
SELECT ...
CAST(CASE WHEN IsDate(u.birthdate) = 1 THEN u.birthdate ELSE NULL END AS datetime) AS birthdate
...
FROM user u
WHERE ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
476 次 |
| 最近记录: |