日期型的轉化?

pandarus 2003-01-21 02:08:06
一下沒注意.從Excel表導入Sql2000后日期變了.在Excel中的進廠日期是95/7/17.到sql中這個字段竟然是2006/7/17.我查看了一下它excel里這個字段設的格式是00/0/00.而我sql2000中的是0000/00/00.不知道是不是這個原因.
可我現在已經導了十個表在里面了.在sql2000中有沒有直接轉換函數能把它直接轉過來呢.不然的話.我又要一張一張表重新導過了.哎.......
...全文
21 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
pandarus 2003-01-21
  • 打赏
  • 举报
回复
我試一試先!
jin888888 2003-01-21
  • 打赏
  • 举报
回复
可能真的沒辦法呀﹐重新導入一次吧。
pengdali 2003-01-21
  • 打赏
  • 举报
回复
楼主还没搞定吗??
update 表 set 时间列=DATEADD(year,11,时间列)
happydreamer 2003-01-21
  • 打赏
  • 举报
回复
DATEADD
在向指定日期加上一段时间的基础上,返回新的 datetime 值。

语法
DATEADD ( datepart , number, date )

参数
datepart

是规定应向日期的哪一部分返回新值的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。

日期部分 缩写
Year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms


number

是用来增加 datepart 的值。如果指定一个不是整数的值,则将废弃此值的小数部分。例如,如果为 datepart 指定 day,为 number 指定 1.75,则 date 将增加 1。
pandarus 2003-01-21
  • 打赏
  • 举报
回复
還有沒有辦法啊?
twht 2003-01-21
  • 打赏
  • 举报
回复
如果差11年
你可以使用下面语句:
update table set date=date+4017
11 年刚好是4017天。
pandarus 2003-01-21
  • 打赏
  • 举报
回复
parkersh(),
你好,好象你說的有點道理.因為在Excel中所有記錄都是相差11年.不過你能詳細說一說你的這個dateadd函數嗎?能不能一次性轉好所有的這個進廠日期記錄?
parkersh 2003-01-21
  • 打赏
  • 举报
回复
DATEADD ( datepart , number, date )
参数描述:
DatePart 规定应向日期的哪一部分返回新值(Year,Month,Day...)
number 用来增加 datepart 的值
date 日期格式字符串的表达式
例:update 表1 set 进厂日期=Dateadd(Year,-11,进厂日期) Where 条件
将符合条件纪录的日期减少11年
pengdali 2003-01-21
  • 打赏
  • 举报
回复
sql可以认的如:

declare @a datetime
set @a='95/2/1'
select @a
pengdali 2003-01-21
  • 打赏
  • 举报
回复
先导为字符型,再:

alter table 表名 add 时间列1 datetime

update 表名 set 时间列1=时间列

alter table 表名 drop column 时间列

exec sp_rename '表名.时间列1','时间列'
昵称被占用了 2003-01-21
  • 打赏
  • 举报
回复
重新导吧,这样放心。

为什么要设置成短日期?
CrazyFor 2003-01-21
  • 打赏
  • 举报
回复
估计没折了,:)

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧