2012-05-07 7 views
0

Ниже приведен скрипт MYSQL:MYSQL: Индикатор даты на прошлой неделе

У меня есть следующий сценарий, чтобы поставить «1» в поле IF дата TSTAMP попадает в воскресенье текущей недели в субботу, но вместо этого он восходит ко всем годам и вставляет 1, а не только за текущий год.

Любые идеи?

IF(FROM_UNIXTIME(renprop_commercial_new.tstamp, "%U") = FROM_UNIXTIME(UNIX_TIMESTAMP(NOW()),"%U"),1,0) 
+0

Попробуйте также получить год '% Y-% U'. –

ответ

1

С% U только возвращает неделю из года, независимо от того, в каком году отметка времени на самом деле, вы также должны сравнивать лет. Самый простой способ сделать это - использовать %Y-%U в качестве строки формата. Это даст вам (скажем) 2012-23 вместо 23.

Однако обратите внимание, что это будет только быть надежным, если вы выполняете сопоставления равенства. Если вы начинаете делать больше/меньше, чем сравнение, то вроде 2012-2, оценивая как «больше», чем 2012-13, потому что сравнение будет выполнено как строка, а не численно.

+0

Кажется, что результат '% U' имеет нулевой префикс, поэтому для сравнений тоже должно быть хорошо. –

+0

Спасибо, это имеет смысл! Я решил скорее использовать этот показатель вместе с тестом, чтобы определить, является ли он правильным годом, так как это будет легче понять позже. – hermanvn

Смежные вопросы