select datediff(mm, 0, getdate())
Эта функция возвращает результат в 1376 году, я не понимаю, о том, как это было вычисленнойSQL Server или Tsql - функции DATEDIFF и DATEADD
select dateadd(mm, datediff(mm, 0, getdate()), -1)
Эта функция возвращает результат, как «2014-08- 31 00: 00: 00.000 ", который составляет 31 августа. Мое понимание в соответствии с датой() - мм означает месяц.
select dateadd(mm, datediff(mm, 0, getdate()), -2)
Выход «2014-08-30 00: 00: 00.000». Это снова сбивает меня с толку, поскольку это должно было отрицать месяц на -1. Но вместо этого он делает это за день.
do 'select cast (0 as datetime)' – Laurence
Время в секунду для сервера sql - 1 jan 1900 – Mihai
[Пожалуйста, прекратите использовать сокращенную версию] (http://sqlblog.com/blogs/aaron_bertrand/archive/2011/09/20 /bad-habits-to-kick-using-shorthand-with-date-time-operations.aspx). Вы не сохраняете какое-либо время, набрав ленивый способ, и вы явно не помогаете сделать самообъявление кода. Замените 'month' за' mm' и замените '' 19000101'' на '0',' '18991231'' за '-1' и' '18991230'' за' -2'. –