1

我的数据库中有一个表,其中有一列我想从 更改varchardatetime

在我的数据库中,该tgl_lahir列包含以下格式的数据:1969-10-30 00:00:00

SELECT convert (datetime, substring(tgl_lahir, 9, 2)
               +(substring(tgl_lahir, 6, 2) )
               + (left(tgl_lahir, 4)))
from penduduk

谁能帮我 ?

我收到以下错误消息:

消息 242,级别 16,状态 3,第 2 行
将 char 数据类型转换为 datetime 数据类型导致超出范围的 datetime 值。

4

2 回答 2

0

看起来您正在指定月-日-年。SQL 可能期望日月年。你还需要破折号,像这样:

 (datetime,(substring(tgl_lahir,6,2))+'-'+substring(tgl_lahir,9,2)+'-'+(left(tgl_lahir,4)))
于 2012-09-18T10:08:19.283 回答
0

尝试

Select CONVERT (datetime,tgl_lahir,120) from penduduk 
于 2012-09-18T10:25:03.723 回答