Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将varchar(50)转换为datetime并填充表的其余部分_Sql_Sql Server_Sql Server 2012 - Fatal编程技术网

Sql 将varchar(50)转换为datetime并填充表的其余部分

Sql 将varchar(50)转换为datetime并填充表的其余部分,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我正在处理一个数据仓库,在数据模型中有一个维度表dim.date,它需要从excel工作表中填充 这是表格结构 CREATE TABLE timeme ( datekey INT IDENTITY NOT NULL, fulldate VARCHAR(50), englishdayname VARCHAR(20), englishmonthname VARCHAR(20),

我正在处理一个数据仓库,在数据模型中有一个维度表dim.date,它需要从excel工作表中填充

这是表格结构

CREATE TABLE timeme 
  ( 
     datekey             INT IDENTITY NOT NULL, 
     fulldate            VARCHAR(50), 
     englishdayname      VARCHAR(20), 
     englishmonthname    VARCHAR(20), 
     daynumberofthemonth INT, 
     daynumbarofyear     INT, 
     weeknumberofyear    INT, 
     calenderquater      INT, 
     calenderyear        INT 
  ) 

INSERT INTO timeme 
            (fulldate) 
VALUES     ('03-13-2013-02:41:38'), 
            ('03-13-2013-02:39:50'), 
            ('03-13-2013-02:53:15'), 
            ('03-13-2013-02:59:47') 
这就是我试过的

-- select * from timeme

--update timeme set fulldate= cast(left(fulldate, 10)+ ' ' +replace(substring(fulldate, 12, 12), '.', ':') as datetime)-- but it should be  2013-03-13 02:41:38.000

UPDATE timeme 
SET    englishdayname = Datename(dw, fulldate), 
       englishmonthname = Datename(mm, fulldate), 
       daynumberofthemonth = Datepart(d, fulldate) 

Update timeme 
SET daynumbarofyear -- this i didnt get rest how to populate

有人能帮我填充整个表格吗你在找这个吗

updatetimeme
设置fulldate=SUBSTRING(fulldate,7,4)+'-'+左(fulldate,5)+'+右(fulldate,8);
更新时间
设置englishdayname=DATENAME(dw,CAST(fulldate为日期)),
englishmonthname=DATENAME(mm,演员阵容(fulldate为日期)),
daynumberofthemonth=日期部分(dd,CAST(完整日期为日期)),
daynumbarofyear=DATEPART(dy,CAST(fulldate作为日期)),
weeknumberofyear=日期部分(ww,CAST(fulldate作为日期)),--或isoww而不是ww
日历季度=日期部分(qq,铸造(完整日期为日期)),
日历年=日期部分(yy,铸造(完整日期为日期));
结果:

| DATEKEY | FULLDATE | ENGLISHDAYNAME | ENGLISHMONTHNAME | DAYNUMBEROFTHEMONTH | DAYNUMBAROFYEAR | WEEKNUMBEROFYEAR | CALENDERQUATER | CALENDERYEAR | |---------|---------------------|----------------|------------------|---------------------|-----------------|------------------|----------------|--------------| | 1 | 2013-03-13 02:41:38 | Wednesday | March | 13 | 72 | 11 | 1 | 2013 | | 2 | 2013-03-13 02:39:50 | Wednesday | March | 13 | 72 | 11 | 1 | 2013 | | 3 | 2013-03-13 02:53:15 | Wednesday | March | 13 | 72 | 11 | 1 | 2013 | | 4 | 2013-03-13 02:59:47 | Wednesday | March | 13 | 72 | 11 | 1 | 2013 | |DATEKEY | FULLDATE | ENGLISHDAYNAME | ENGLISHMONTHNAME |月的日数|月的日数|年的周数|日历季|日历年| |---------|---------------------|----------------|------------------|---------------------|-----------------|------------------|----------------|--------------| |1 | 2013-03-13 02:41:38 |周三| 2013年3月| 13 | 72 | 11 | 1 || |2 | 2013-03-13 02:39:50 |周三| 2013年3月| 13 | 72 | 11 | 1 || |3 | 2013-03-13 02:53:15 |周三| 2013年3月| 13 | 72 | 11 | 1 || |4 | 2013-03-13 02:59:47 |周三| 2013年3月| 13 | 72 | 11 | 1 ||
这里是演示版Excel通常不会将日期作为日期处理吗?可能是..但Excel来自第三方供应商..当我尝试从Excel导入sql server时,使用
ssis任务
将其作为varchar(10),并将其转换为datetime!