tabla
假设我在其中一个数据库中有以下日期/时间:
输入:
05/03/2018 08:00:00.000
,输出:05/03/2018 18:00:00.000
我需要得到以下输出:
Entrada
:上午 08:00:00
Salida
: 下午 06:00:00
我有以下内容:
select case when datepart(hour,entrada) > 12 then convert(varchar(28), cast(entrada as datetime), 8) + ' p.m.'
else convert(varchar(30), cast(entrada as datetime) , 8) + ' a.m.' end as hora_entrada,
case when datepart(hour,salida) > 12 then convert(varchar(28), cast(salida as datetime), 8) + ' p.m.'
else convert(varchar(30), cast(salida as datetime) , 8) + ' a.m.' end as hora_salida,
right(convert(varchar(20),entrada,113),9) as entrada,
right(convert(varchar(20),salida,113),9) as salida
from tablaX
得到的结果是:
如您所见,输出是错误的18:00:00 p.m.
。
我怎么能不使用这么多的转换呢?
环境: SQL Server 2008 R2
您唯一需要的是指定输出格式,在这种情况下是 a
TIME
(否DATETIME
,所以首先您必须将其转换为这种格式)和格式 100(您可以在此处看到许多不同的示例)。如果有人需要它,它最终是这样的:
解决方案1:
解决方案2: