Sql Server select datetime without seconds

2020-06-15 03:08发布

I have datetime column value below

2015-01-04 20:37:00.000

I tried below

cast(cast(MyDateColumn as date) as datetime)+cast(datepart(hour,MyDateColumn ) as float)/24
as MyDateColumn 

and

CAST(CONVERT(CHAR(16),MyDateColumn,113) AS datetime) as MyDateColumn

These are did not work for me

How can i get above datetime as 01-04.2015 20:37 ?

7条回答
老娘就宠你
2楼-- · 2020-06-15 03:28

In MYSQL it will work

SELECT DATE_FORMAT(date, '%Y-%m-%d %H:%i') AS formated_date FROM table;

In MS SQL It will work

 SELECT FORMAT(getdate(), 'dd-mm-yyyy HH:mm') 
查看更多
地球回转人心会变
3楼-- · 2020-06-15 03:30

this is the way i do it. I needed to get -2 minutes

select CONVERT(datetime, CONVERT(CHAR(18),  DATEADD(minute, -2, getdate()) , 113) + '00')
查看更多
贪生不怕死
4楼-- · 2020-06-15 03:35

In SQL Server this will work:

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);
查看更多
Animai°情兽
5楼-- · 2020-06-15 03:35

Since MS SQL 2012, you can use FORMAT,

SELECT FORMAT([MyDateColumn], 'dd-MM.yyyy HH:mm') 
查看更多
不美不萌又怎样
6楼-- · 2020-06-15 03:36

Here's another way and you get a datetime in 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')
)
查看更多
对你真心纯属浪费
7楼-- · 2020-06-15 03:46

In SQL Server this should do the trick:

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)
查看更多
登录 后发表回答