Sql 将varchar(50)转换为datetime并填充表的其余部分
我正在处理一个数据仓库,在数据模型中有一个维度表dim.date,它需要从excel工作表中填充 这是表格结构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),
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!