请教:Sql Server是如何区分时间中的上午下午的?

IMAGSE 2009-02-20 05:04:59
今天做东西时候发现一个问题,我向数据库插入一条记录
create table aa(w datetime)

insert into aa (w) values (getdate())
select * from aa



得到的结果是:
w
1 2009-02-20 16:52:25.547


但是我到数据表中找到这个表,查看字段的时候就是这样了:
w
2009-02-20 04:52:26

查询一下,将其输入到页面中,也是得到的2009-02-20 16:52:25 24小时制的时间

我的问题就是,sql是如何分辨数这个时间是上午还是下午的?

谢谢!
...全文
1213 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
gz5182009 2011-10-08
  • 打赏
  • 举报
回复
围观一下
IMAGSE 2009-02-21
  • 打赏
  • 举报
回复
可是,就算是和时区有关的话,字段里面的东西,如果不管是16点还是04点。

都记录成04点的话,他怎么知道是上午的还是下午的啊?

还是不太明白

请教高手
hxbkkk 2009-02-21
  • 打赏
  • 举报
回复
直接查询时与你安装用的语言时区\操作系统有关
you_tube 2009-02-21
  • 打赏
  • 举报
回复
这个与你安装用的语言时区\操作系统有关
要不转换成24小时制
claro 2009-02-21
  • 打赏
  • 举报
回复
帮顶。
csmark 2009-02-21
  • 打赏
  • 举报
回复
mark
IMAGSE 2009-02-21
  • 打赏
  • 举报
回复
没有人遇到这种情况么?

我只是想搞清楚sql获得时期标志的原理。。

顶~
stonehy520 2009-02-21
  • 打赏
  • 举报
回复
我的是24小时的,好像没出现过这问题
duanzhi1984 2009-02-20
  • 打赏
  • 举报
回复
我觉得SQL中应该都是24h制的

只是每个国家的习惯不一样,如果你是12H制的,他可以给你转换过来就可以了


十二点前就是上午,后就是下午啊!



个人意见,请参考
IMAGSE 2009-02-20
  • 打赏
  • 举报
回复
我是用上面的sql语句在查询分析器中运行,然后到企业管理器中查看的结果是只有12小时制的

我的意思是,数据库字段中显示出了那个样子,sql是如何分辨出来的~

我知道可以用convert函数进行格式话,就是不知道数据库这样保存,是复合分辨出来是上午还是下午

注:数据库字段中没有显示PM或者AM一样的东西~
jlj84237485 2009-02-20
  • 打赏
  • 举报
回复
帮顶一下
rucypli 2009-02-20
  • 打赏
  • 举报
回复
都转化成yyyy-mm-dd hh:mi:ss(24h)
lzfrab 2009-02-20
  • 打赏
  • 举报
回复
如果 单纯是在数据库服务器上执行来,执行去,应该不会发生类似情况的
我觉得,这也有可能是IIS和数据库(也是当前机器的格式)之间隐含存在的日期格式不一致
以前遇到过,由于IIS的格式与机器的格式不一致
具体在哪修改,忘记了
等待高手,指示下...
lzfrab 2009-02-20
  • 打赏
  • 举报
回复
关注....帮顶
dobear_0922 2009-02-20
  • 打赏
  • 举报
回复
显示格式的问题
SELECT GETDATE() aa
SELECT CONVERT(VARCHAR,GETDATE(),9) bb

--result
/*aa
------------------------------------------------------
2009-02-20 17:09:48.810

(所影响的行数为 1 行)

bb
------------------------------
02 20 2009 5:09:48:810PM

(所影响的行数为 1 行)

*/
肥龙上天 2009-02-20
  • 打赏
  • 举报
回复

楼主看看时间的格式化方式吧

select CONVERT(varchar(30) , getdate(), 120 )
2009-02-20 17:16:04

select CONVERT(varchar(30) , getdate(), 110 )
02-20-2009

select CONVERT(varchar(30) , getdate(), 113 )
20 Feb 2009 17:16:04:660

select CONVERT(varchar(30) , getdate(), 109 )
Feb 20 2009 5:16:04:660PM

zc_0101 2009-02-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 IMAGSE 的帖子:]
但是我到数据表中找到这个表,查看字段的时候就是这样了:
[/Quote]
企业管理器还是什么?
dawugui 2009-02-20
  • 打赏
  • 举报
回复
后面应该有个PM或是AM,你没注意到吧.
dawugui 2009-02-20
  • 打赏
  • 举报
回复
不是吧?这样也行?
dawugui 2009-02-20
  • 打赏
  • 举报
回复
不是吧?这样也行?
加载更多回复(1)

34,590

社区成员

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

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