我收到了朋友的约会,但我需要将其更改为我的表格结构。
已收到数据。
Initial,Surname, Date_of_birth , Accno
AD ,Halute , 01Apr1978:00:00:00 , 1111111111
我的表
Surname & Initial, Date_of_Birth, Accno
Halute AD , 01/04/1978 , 111111111
问题是如何将新数据转换为我的
我尝试了以下查询,收到此错误消息。
SELECT
surname+' '+INITIALS as 'Surname & Initial'
,CONVERT(VARCHAR(20), CONVERT(DATETIME, STUFF(Date_of_Birth, CHARINDEX(':', Date_of_Birth), 1, ' '), 100), 103) AS Date_of_Birth
,Accno
FROM BackScanning
Msg 242,Level 16,State 3,Line 1 varchar数据的转换 键入日期时间数据类型会导致超出范围的值。
答案 0 :(得分:1)
我认为这就是你想要的。
SELECT 'Halute' + ' AD' AS Surname_Initial,
CONVERT(VARCHAR(20), CONVERT(DATETIME, '01Apr1978 00:00:00',100), 103) AS Date_of_Birth,
'111111111' AS Accno
以上查询为您提供单个记录。要从您的表中进行选择,它应该是这样的 -
SELECT
Surname_Initial
,CONVERT(VARCHAR(20), CONVERT(DATETIME, STUFF(Date_of_Birth, CHARINDEX(':', Date_of_Birth), 1, ' '), 100), 103) AS Date_of_Birth
,Accno
FROM YourTable
答案 1 :(得分:1)
create table #temp (col01 varchar(50), dob date);
with cte as (
SELECT 'AD' AS INITIAL
,'Halute' as SURNAME
,'01Apr1978:00:00:0' as date_of_birth
)
insert into #temp (col01, dob)
select surname+' '+initial as 'Surname & Initial'
,CONVERT(date,substring(date_of_birth,1,9))
--,date_of_birth
from cte
我使用了substring,因为你的样本是'01Apr1978:00:00:0'