Sql 服务器 select 没有秒的日期时间
Sql Server select datetime without seconds
我的日期时间列值低于
2015-01-04 20:37:00.000
下面我试过了
cast(cast(MyDateColumn as date) as datetime)+cast(datepart(hour,MyDateColumn ) as float)/24
as MyDateColumn
和
CAST(CONVERT(CHAR(16),MyDateColumn,113) AS datetime) as MyDateColumn
这些对我不起作用
我怎样才能将日期时间设置为 01-04.2015 20:37?
在MYSQL它会起作用
SELECT DATE_FORMAT(date, '%Y-%m-%d %H:%i') AS formated_date FROM table;
在 MS 中 SQL 它会起作用
SELECT FORMAT(getdate(), 'dd-mm-yyyy HH:mm')
在 SQL 服务器中,这应该可以解决问题:
declare @dt datetime = '2015-01-04 20:37:00.000'
select right('0' + cast(DATEPART(MM, @dt) as varchar), 2) + '-'
+ right('0' +cast(DATEPART(DAY, @dt) as varchar), 2) + '.'
+ cast(DATEPART(YEAR, @dt) as varchar) + ' '
+ right('0' +cast(DATEPART(HOUR, @dt) as varchar), 2) + ':'
+ right('0' +cast(DATEPART(MINUTE, @dt) as varchar), 2)
在 SQL 服务器中,这将起作用:
DECLARE @now [datetime];
SET @now = GETDATE();
SELECT
CONVERT([varchar](10), @now, 105) + ' ' +
RIGHT('0' + CONVERT([varchar](2), DATEPART(HOUR, @now)), 2) + ':' +
RIGHT('0' + CONVERT([varchar](2), DATEPART(MINUTE, @now)), 2);
自 MS SQL 2012 年起,您可以使用 FORMAT
、
SELECT FORMAT([MyDateColumn], 'dd-MM.yyyy HH:mm')
这是另一种方法,您可以在 return 中获得日期时间。
SELECT DATEADD(
MILLISECOND,
DATEPART(MILLISECOND, '2016-02-16 13:45:24.573') * -1,
DATEADD(SECOND, DATEPART(SECOND,'2016-02-16 13:45:24.573') * -1,
'2016-02-16 13:45:24.573')
)
我就是这样做的。我需要 -2 分钟
select CONVERT(datetime, CONVERT(CHAR(18), DATEADD(minute, -2, getdate()) , 113) + '00')
Format(Cast(Convert(varchar(15),Cast(timeval as Time),100) as DateTime),'hh:mm tt') As newtime
这将从时间中删除秒数并添加 AM、PM 时间。
简单地说,
SELECT CAST(CONVERT(varchar, GETDATE(), 100) as datetime)
我的日期时间列值低于
2015-01-04 20:37:00.000
下面我试过了
cast(cast(MyDateColumn as date) as datetime)+cast(datepart(hour,MyDateColumn ) as float)/24
as MyDateColumn
和
CAST(CONVERT(CHAR(16),MyDateColumn,113) AS datetime) as MyDateColumn
这些对我不起作用
我怎样才能将日期时间设置为 01-04.2015 20:37?
在MYSQL它会起作用
SELECT DATE_FORMAT(date, '%Y-%m-%d %H:%i') AS formated_date FROM table;
在 MS 中 SQL 它会起作用
SELECT FORMAT(getdate(), 'dd-mm-yyyy HH:mm')
在 SQL 服务器中,这应该可以解决问题:
declare @dt datetime = '2015-01-04 20:37:00.000'
select right('0' + cast(DATEPART(MM, @dt) as varchar), 2) + '-'
+ right('0' +cast(DATEPART(DAY, @dt) as varchar), 2) + '.'
+ cast(DATEPART(YEAR, @dt) as varchar) + ' '
+ right('0' +cast(DATEPART(HOUR, @dt) as varchar), 2) + ':'
+ right('0' +cast(DATEPART(MINUTE, @dt) as varchar), 2)
在 SQL 服务器中,这将起作用:
DECLARE @now [datetime];
SET @now = GETDATE();
SELECT
CONVERT([varchar](10), @now, 105) + ' ' +
RIGHT('0' + CONVERT([varchar](2), DATEPART(HOUR, @now)), 2) + ':' +
RIGHT('0' + CONVERT([varchar](2), DATEPART(MINUTE, @now)), 2);
自 MS SQL 2012 年起,您可以使用 FORMAT
、
SELECT FORMAT([MyDateColumn], 'dd-MM.yyyy HH:mm')
这是另一种方法,您可以在 return 中获得日期时间。
SELECT DATEADD(
MILLISECOND,
DATEPART(MILLISECOND, '2016-02-16 13:45:24.573') * -1,
DATEADD(SECOND, DATEPART(SECOND,'2016-02-16 13:45:24.573') * -1,
'2016-02-16 13:45:24.573')
)
我就是这样做的。我需要 -2 分钟
select CONVERT(datetime, CONVERT(CHAR(18), DATEADD(minute, -2, getdate()) , 113) + '00')
Format(Cast(Convert(varchar(15),Cast(timeval as Time),100) as DateTime),'hh:mm tt') As newtime
这将从时间中删除秒数并添加 AM、PM 时间。
简单地说,
SELECT CAST(CONVERT(varchar, GETDATE(), 100) as datetime)