默认日期的疑问。

victorycyz 2003-08-21 05:03:51

我的ddate字段(datetime型),有一个数值是'15:00',不带日期的,用CONVERT(varchar(20), ddate, 20)转换后,显示出来的值是'1899-12-30 15:00:00'。而我看帮助文档上说的是,不带日期的时间值,默认的日期是1900年1月1日,请问我得到的值为什么不是'1900-1-1 15:00:00',而是'1899-12-30 15:00:00'呢?
...全文
121 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
victorycyz 2003-08-22
  • 打赏
  • 举报
回复
似乎明白了一点。结贴。
victorycyz 2003-08-22
  • 打赏
  • 举报
回复
似乎明白了一点。结贴。
CABO 2003-08-21
  • 打赏
  • 举报
回复
我的结果是:
1900-01-01 00:00:00
CABO 2003-08-21
  • 打赏
  • 举报
回复
可以这样看一下默认的:

select CONVERT(varchar(20),convert(datetime,0), 20)
pengdali 2003-08-21
  • 打赏
  • 举报
回复
select CONVERT(varchar(20),cast('15:00' as datetime), 20) [中海好,璇玑好,腊肉好,小黑好]


结果:


中海好,璇玑好,腊肉好,小黑好
--------------------
1900-01-01 15:00:00
CABO 2003-08-21
  • 打赏
  • 举报
回复
不知道为什么,今天我的MSSQL象死掉了一样,都不能打开
CABO 2003-08-21
  • 打赏
  • 举报
回复
http://dbforums.com/t573617.html
http://www.databasejournal.com/features/mssql/article.php/1494281
不知道对你有没有帮助
happydreamer 2003-08-21
  • 打赏
  • 举报
回复
我这里没问题啊
liuri璇玑 2003-08-21
  • 打赏
  • 举报
回复
奇怪,奇怪,
DATETIME类型的字段里输入15:00,它应该自动就会帮你转成是1900-1-1 15:00:00了啊
然后,用CONVERT的也是正常的

我这里是正常的

create table ta(aa datetime)
insert into ta values('15:00')

select * from ta
--1900-01-01 15:00:00.000

select convert(varchar(20), aa, 20) from ta
--1900-01-01 15:00:00


ghtghtmalone 2003-08-21
  • 打赏
  • 举报
回复
我也遇见过,
帮你顶

34,587

社区成员

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

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