【问题标题】:SQL Error. It only works before 12amSQL 错误。它只在上午 12 点之前有效
【发布时间】:2018-05-13 05:00:35
【问题描述】:
SET @secret= - (convert(float,getdate()) - convert(int,getdate()) ) * 1000000 ;

当我将'-' 放在 (convert 之前,它在上午 12 点之后工作,但是当我删除 '-' 时,它在上午 12 点之前工作。这很奇怪。我能做些什么来防止这种情况发生?

【问题讨论】:

  • 你想用这段代码完成什么?
  • 如果你想计算时差,请查看这个问题stackoverflow.com/questions/26991807/…
  • 当您说“它有效”或无效时,您是什么意思?这是要做什么?
  • 你确定你的意思是在上午 12 点之前?
  • 英文很难解释,但我会试一试。我正在尝试制作一个有 9 列的表格。进入那里的信息是由其他人从另一个应用程序提交的。提交的信息将进入我的表格。到目前为止一切都很好,除了一件事。由于转换前的“-”,上午 12 点后表格不会显示在我的网页上。而且我真的不知道如何解决这个问题..

标签: sql sql-server


【解决方案1】:

你似乎想要这个计算:

select -1000000 * datediff(second, 0, cast(getdate() as time)) / (24*60*60.0)

我建议您使用这种方法而不是更神秘的方法将一天中的一小部分转换为大数字。

或者,如果您更喜欢更精确:

select -1000000 * datediff(millisecond, 0, cast(getdate() as time)) / (24*60*60*1000.0)

【讨论】:

  • 缺少一个查询吗?你说类似You want X. I suggest Y, but you may prefer Z 但我只看到X,Z ??
  • @JuanCarlosOropeza X 是第一个,Y 是 OP 中的,Z 是第二个。
猜你喜欢
  • 2019-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多