1

他の2つの列が更新されたときに更新される計算列があり、この列の式は

SELECT(datediff(day,'2012-11-01 18:15:00.000','2012-10-22 11:59:58.000'))

他のすべての日付では正常に機能しますが、月が変わると負の値になります。これが起こらず、正しい整数値を取得できるようにするにはどうすればよいですか?

4

1 に答える 1

1

さて、2つのオプション:

  1. 以前の日付が常に日付のリストの最初になるようにしてくださいDATEDIFF

    SELECT DATEDIFF(DAY, '2012-11-01 18:15:00.000', '2012-10-22 11:59:58.000')
    

    これにより、結果は-10になります。これは、リストの最初の日付が後の日付であるためです。

    使用する場合

    SELECT DATEDIFF(DAY, '2012-10-22 11:59:58.000', '2012-11-01 18:15:00.000')
    

    の最初の日付が早い日付であるため、結果は10になります。DATEDIFF

  2. 絶対値を取得するために使用するだけABSです(+または-なし):

    SELECT ABS(DATEDIFF(DAY, '2012-11-01 18:15:00.000', '2012-10-22 11:59:58.000'))
    

    その場合、負の値を取得することはありません。

于 2012-11-09T17:29:09.080 に答える