fin*_*s10 3 sql t-sql sql-server datetime date
我已经开发了 5 年。但这对我来说是全新的。最近我正在处理旧应用程序,其中date和integer值存储CHAR在ms sql server. 令人震惊的事情(至少对我来说,因为我以前从未想过这个方向)是关系运算符处理date存储在CHAR列中的值。
恐怕这会有性能问题。这是正确的还是我错了?ms sql server在应用关系运算符之前会发生任何隐式转换或转换吗?或者这是正常的ms sql server吗?
我们正计划迁移它并想检查我是否可以继续进行此设置或date需要存储在DATE类型列中并integer在int类型列中ms sql server?
我还注意到所有日期都以“YYYY/MM/DD”格式存储在表中的字符串中。
这是我创建和测试的测试表。
CREATE TABLE [dbo].[TestTable](
[Date] [char](10) NULL,
[Integer] [char](10) NULL
) ON [PRIMARY]
GO
SELECT * FROM TESTTABLE
Run Code Online (Sandbox Code Playgroud)
SELECT * FROM TESTTABLE where [Date] > '1993/02/10'
Run Code Online (Sandbox Code Playgroud)
请指教。
不要将日期存储为字符串。改用相关的date类似数据类型。
虽然像YYYY/MM/DD这样的字符串格式允许您进行相等和不等比较和排序,但会弹出其他限制,例如:
要解决这些问题,您很快就会发现自己将查询中的字符串转换为日期,这是非常低效的。
| 归档时间: |
|
| 查看次数: |
467 次 |
| 最近记录: |