0

我的 sql 表中有以下日期

2013-04-01 00:00:00.000
2013-06-19 15:57:10.357
2013-06-19 15:57:10.370
2013-06-19 15:57:10.383
2013-06-19 15:57:10.397
2013-04-01 00:00:00.000
2013-04-01 00:00:00.000
2013-04-01 00:00:00.000
2013-06-19 15:57:10.410

我的问题是:

我怎样才能2013-04-01 12:00:00到达那个日期2013-04-01 00:00:00.000

4

4 回答 4

0

最简单的方法是增加 12 小时。最简单的方法是添加 0.5:

select mydate + 0.5;

您的示例代码并没有真正意义。首先,它正在处理当前日期值,而不是数据中的列。此外,它缺少第一个参数的长度。 指定字符数据类型时始终包括长度。

于 2013-10-31T19:14:56.480 回答
0

这里有很多款式适合你

SELECT

    GETDATE() AS GetDate,
    CONVERT(VARCHAR,GETDATE(),0) AS '0',
    CONVERT(VARCHAR,GETDATE(),100) AS '100',
    CONVERT(VARCHAR,GETDATE(),1) AS '1',
    CONVERT(VARCHAR,GETDATE(),101) AS '101',
    CONVERT(VARCHAR,GETDATE(),7) AS '7',
    CONVERT(VARCHAR,GETDATE(),107) AS '107',
    CONVERT(VARCHAR,GETDATE(),108) AS '108',
    CONVERT(VARCHAR,GETDATE(),108) AS '108',
    CONVERT(VARCHAR,GETDATE(),10) AS '10',
    CONVERT(VARCHAR,GETDATE(),110) AS '110',
    CONVERT(VARCHAR,GETDATE(),12) AS '12',
    CONVERT(VARCHAR,GETDATE(),112) AS '112',
    CONVERT(VARCHAR,GETDATE(),14) AS '14',
    CONVERT(VARCHAR,GETDATE(),114) AS '114'
于 2013-10-31T19:31:45.290 回答
0
select CONVERT(varchar(30),getdate(),100)
于 2013-10-31T19:18:33.023 回答
0

除非您的源数据始终具有午夜时间(我对此表示怀疑,否则时间并不重要),否则添加 12 小时可能会导致日期不正确。

您可以通过从两种不同的格式代码中获取部分来做到这一点:

120 - ODBC 规范 - yyyy-mm-dd hh:mi:ss(24h)

109 - 默认 + 毫秒 - mon dd yyyy hh:mi:ss:mmmAM(或PM

SELECT CONVERT(char(10),@date,120) + SUBSTRING(CONVERT(char(20),@date,109),12,9)
于 2013-10-31T19:25:54.417 回答