Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 显示一列';现在是以秒为单位还是以小时为单位?_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql 显示一列';现在是以秒为单位还是以小时为单位?

Sql 显示一列';现在是以秒为单位还是以小时为单位?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一个名为title_runtime的列,它以秒为单位,我想以小时为单位显示,并且只显示运行时间超过三小时的列。这就是我得到的,减去转换: select title_name, title_type, title_release_year, title_runtime as title_runtime_hrs from nf_titles where title_release_year = '1999' or title_release_year = '2000' or ti

我有一个名为title_runtime的列,它以秒为单位,我想以小时为单位显示,并且只显示运行时间超过三小时的列。这就是我得到的,减去转换:

select title_name, title_type, title_release_year, title_runtime as title_runtime_hrs
from nf_titles
where title_release_year = '1999' or
    title_release_year = '2000' or
    title_release_year = '2001' and
    title_runtime > 3
order by title_release_year, title_runtime_hrs

将列标题除以3600

select title_name, title_type, title_release_year, title_runtime/3600 as title_runtime_hrs
from nf_titles
where title_release_year = '1999' or
    title_release_year = '2000' or
    title_release_year = '2001' and
    title_runtime > 3*3600
order by title_release_year, title_runtime_hrs
上面的查询是错误的,我们需要强制浮点除法,否则1200/3600之类的东西会将列值显示为零

title_runtime / 3600.0 as title_runtime_hrs

将列标题除以3600

select title_name, title_type, title_release_year, title_runtime/3600 as title_runtime_hrs
from nf_titles
where title_release_year = '1999' or
    title_release_year = '2000' or
    title_release_year = '2001' and
    title_runtime > 3*3600
order by title_release_year, title_runtime_hrs
上面的查询是错误的,我们需要强制浮点除法,否则1200/3600之类的东西会将列值显示为零

title_runtime / 3600.0 as title_runtime_hrs

如果除法运算中的两个值都是
int
,则结果将是
int

试试这个:

select title_name, title_type, title_release_year, title_runtime / 3600.0 as title_runtime_hrs
from nf_titles
where title_release_year = '1999' or
    title_release_year = '2000' or
    title_release_year = '2001' and
    title_runtime > 3*3600
order by title_release_year, title_runtime_hrs

如果除法运算中的两个值都是
int
,则结果将是
int

试试这个:

select title_name, title_type, title_release_year, title_runtime / 3600.0 as title_runtime_hrs
from nf_titles
where title_release_year = '1999' or
    title_release_year = '2000' or
    title_release_year = '2001' and
    title_runtime > 3*3600
order by title_release_year, title_runtime_hrs

要精确测量小时数,需要除以3600.0。不仅仅是3600。如果你除以3600,你将永远得不到准确的小时数。例如,如果运行时为1/2小时,则结果需要为1.5小时。如果不除以3600.0,这是不可能的

SELECT title_name, title_type, title_release_year, title_runtime / 3600.0 as title_runtime_hrs
FROM nf_titles
WHERE title_release_year = '1999' or
title_release_year = '2000' or
title_release_year = '2001' and
title_runtime > (3.0 * 3600.0)
order by title_release_year, title_runtime_hrs

要精确测量小时数,需要除以3600.0。不仅仅是3600。如果你除以3600,你将永远得不到准确的小时数。例如,如果运行时为1/2小时,则结果需要为1.5小时。如果不除以3600.0,这是不可能的

SELECT title_name, title_type, title_release_year, title_runtime / 3600.0 as title_runtime_hrs
FROM nf_titles
WHERE title_release_year = '1999' or
title_release_year = '2000' or
title_release_year = '2001' and
title_runtime > (3.0 * 3600.0)
order by title_release_year, title_runtime_hrs


虽然可能是这样,但OP可能并不关心小数部分。据我们所知,存储的项目的运行时间为个月。。。(向上投票的btw)无效的列名
title\u runtime\u hrs
!虽然可能是这样,但OP可能并不关心分数部分。据我们所知,存储的项目的运行时间为个月。。。(向上投票的btw)无效的列名
title\u runtime\u hrs
!请您澄清一下,您是否希望运行时间
10975
秒显示为
3:02:55
3.048611
?我希望它显示在3.048611中。
title\u runtime
条件是适用于所有三年还是仅适用于2001年?如果是前者,则需要将
括在括号中:
(标题发布年份='1999'或…或…)和…
。或者只在中使用
title\u release\u year IN('1999'、'2000'、'2001'))还有……
。请您澄清一下,您希望运行时间
10975
秒显示为
3:02:55
还是
3.048611
?我希望它显示在3.048611中。
title\u runtime
条件是适用于所有三年还是仅适用于2001年?如果是前者,则需要将
括在括号中:
(标题发布年份='1999'或…或…)和…
。或者在
中使用
title\u release\u year IN('1999'、'2000'、'2001')和…
@AndriyM如果你是关于
,那么这只是一个想法,而不是一个精确的解决方案:)不,这是关于
的,没有括在括号中。可能不是问题,但可能是。这个问题不清楚OP是否希望运行时条件仅适用于2001年,因此。。。我要提到它。至于
title\u runtime>3*3600
,我个人实际上比
title\u runtime/3600.0>3
@AndriyM当然,sargable谓词要好得多,刚才提到的
WHERE
子句呢。@AndriyM如果你谈到
,那么这只是一个想法而不是一个确切的解决方案:)不,这是关于没有括在括号内的
的问题。可能不是问题,但可能是。这个问题不清楚OP是否希望运行时条件仅适用于2001年,因此。。。我要提到它。至于
title\u runtime>3*3600
,我个人实际上比
title\u runtime/3600.0>3
@AndriyM更喜欢它。当然,sargable谓词更好,刚才提到的
WHERE
子句呢。WHERE子句也是错误的
title\u runtime/3600
将导致向下取整的int结果,这意味着运行时为
3:59:59
的电影将被忽略。where子句也有错误
title\u runtime/3600
将产生向下舍入的int结果,这意味着运行时间为
3:59:59
的电影将被忽略。