Sql Server选择datetime而不是秒

Son*_*inc 8 sql sql-server datetime

我有以下日期时间列值

2015-01-04 20:37:00.000
Run Code Online (Sandbox Code Playgroud)

我在下面试过

cast(cast(MyDateColumn as date) as datetime)+cast(datepart(hour,MyDateColumn ) as float)/24
as MyDateColumn 
Run Code Online (Sandbox Code Playgroud)

CAST(CONVERT(CHAR(16),MyDateColumn,113) AS datetime) as MyDateColumn
Run Code Online (Sandbox Code Playgroud)

这些对我不起作用

我怎样才能在01-04.2015 20:37之上达到日期时间

Jod*_*ell 23

从MS SQL 2012开始,你可以使用FORMAT,

SELECT FORMAT([MyDateColumn], 'dd-MM.yyyy HH:mm') 
Run Code Online (Sandbox Code Playgroud)

  • 'dd-MM-yyyy HH:mm' (2认同)

kou*_*nda 7

在 MYSQL 中它会工作

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

在 MS SQL 中它会工作

 SELECT FORMAT(getdate(), 'dd-mm-yyyy HH:mm') 
Run Code Online (Sandbox Code Playgroud)

  • SELECT FORMAT(getdate(), 'dd-MM-yyyy HH:mm') 大小写很重要,因为 ms sql 答案会将分钟放在您期望的月份中 (2认同)

小智 4

在 SQL Server 中,这将起作用:

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);
Run Code Online (Sandbox Code Playgroud)