如何将这种日期字符串转换为sql server的大整数?

Mon*_*RPG -2 sql-server casting date bigint

好吧,这是多么愚蠢我保持我的日期为字符串

23.12.2012 21:24:31
Run Code Online (Sandbox Code Playgroud)

现在在选择查询中我想将它们转换为BigInt并进行搜索

casted version : "20121223212431"
Run Code Online (Sandbox Code Playgroud)

如下

select * from myTable where cast(datestring as bigint) > 20111223212431 
Run Code Online (Sandbox Code Playgroud)

如何在sql server上将这种字符串转换为BigInt?

编辑 - 为什么此查询无效

    select (convert(datetime,LastMoveTime,104)) as myTime from myTable
where myTime < DATEADD(day,-366,GETDATE())
Run Code Online (Sandbox Code Playgroud)

错误:列名称'myTime'无效.

Jon*_*eet 5

首先,最好只修改要使用的模式DATETIME.

如果您不能这样做,则可以使用CONVERT表达式转换为DATETIME.您只需要找到正确的格式.(如果你的字符串值是不是已经在支持的格式,你可能需要做一些工作......)这就是价值来决定,毕竟-为什么在所有使用BigInt有?

请注意,如果你正确的模式来使用适当的数据类型,它很可能是很多不必给它的所有转换过的地方更有效.例如,字符串列上的索引对于那种查询没有多大帮助,而如果您可以将其更改为索引DATETIME值,则索引可以完成大部分工作.