При вставке Python datetime.datetime возражают в MySQL

Поскольку вы используете блочную форму link_to, вы должны поместить текст между do / end:

        <%=
        link_to delete_image_attachment_job_url(@job.images[image]),
        remote: true,
        method: :delete,
        data: {confirm: "Are you sure"} do %>
          
        <% end %>

Как в примере из документов :

Вы также можете использовать блок, если целевую ссылку трудно уместить в параметре name. Пример ERB:

blockquote>

<%= link_to(@profile) do %>
  <%= @profile.name %> -- Check it out!
<% end %>
# => 
       David -- Check it out!
     

108
задан Peter Mortensen 15 November 2015 в 08:44
поделиться

3 ответа

когда iserting в t-sql

это перестало работать:

select CONVERT(datetime,'2019-09-13 09:04:35.823312',21)

это работает:

select CONVERT(datetime,'2019-09-13 09:04:35.823',21)

простой способ:

regexp = re.compile(r'\.(\d{6})')
def to_splunk_iso(dt):
    """Converts the datetime object to Splunk isoformat string."""
    # 6-digits string.
    microseconds = regexp.search(dt).group(1)
    return regexp.sub('.%d' % round(float(microseconds) / 1000), dt)
0
ответ дан 24 November 2019 в 03:29
поделиться

Попробуйте использовать now.date () , чтобы получить объект Date , а не DateTime .

Если это не работает, тогда преобразование в строку должно работать:

now = datetime.datetime(2009,5,5)
str_now = now.date().isoformat()
cursor.execute('INSERT INTO table (name, id, datecolumn) VALUES (%s,%s,%s)', ('name',4,str_now))
13
ответ дан 24 November 2019 в 03:29
поделиться

Какие базы данных вы подключаетесь к? Я знаю, что Oracle может быть разборчивой в отношении форматов даты и любит формат ISO 8601 .

** Примечание: Ой, я только что прочитал, что вы используете MySQL. Просто отформатируйте дату и попробуйте ее как отдельный прямой вызов SQL для тестирования.

В Python вы можете получить дату ISO, например

now.isoformat()

. Например, Oracle любит даты типа

insert into x values(99, '31-may-09');

В зависимости от вашей базы данных, если она Oracle может потребоваться TO_DATE:

insert into x
values(99, to_date('2009/05/31:12:00:00AM', 'yyyy/mm/dd:hh:mi:ssam'));

Обычно TO_DATE используется:

TO_DATE(<string>, '<format>')

Если вы используете другую базу данных (я увидел курсор и подумал о Oracle; я мог ошибаться), проверьте их инструменты формата даты. Для MySQL это DATE_FORMAT (), а для SQL Server - CONVERT.

Также использование такого инструмента, как SQLAlchemy , устранит подобные различия и упростит вашу жизнь.

2
ответ дан 24 November 2019 в 03:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: