我正在运行一个简单的代码,它检查ping并从sql获取ip地址。
我希望代码只为那些我今天没有看到的运行,所以每次运行它都会从列表中删除他已经得到答案的ip地址,但是mysql命令对我不起作用。
这是我找到的命令:
select
IP
From
database.devices
where DATE(LastConnected) != Date((now))
我保存在数据库中的数据使用以下格式:
25-may-18 14:30:21
dd-mm-yy hh:mm:ss
怎么了?也许我只需要约会?25.5.18? 如果是-我怎么做?
2条答案
按热度按时间ssgvzors1#
wdebmtf22#
“使用这种格式”听起来像是将日期时间值存储为字符串类型(例如。
VARCHAR
)而不是使用mysqlDATETIME
专门设计用于存储日期时间值的数据类型(但也许我在读更多关于“使用这种格式”和奇怪的dd-monthname-two-digital-year的内容,而不是所允许的。)如果我们想使用mysql date/datetime操作,我们可以将字符串值转换为实际值
DATETIME
使用STR_TO_DATE
功能。我们可以测试选择列表中的表达式,这样我们就可以看到实际发生的情况。。。
一旦我们测试了表达式,就可以在where子句中使用它们
要返回具有lastconnected字符串的行,该字符串表示“在”当前日期的日期时间,可以执行以下操作:
如果
dt_lastconnected
是一个DATETIME
列,我们的查询可以对具有dt_lastconnected
作为第一列:问:如果我改变。。。表上的数据类型[最后连接的列]-数据将发生什么变化?我需要重新输入吗?或者它会单独改变它?
为了避免“擦除”lastconnected列的内容,我们可以添加另一个适当类型的列,并从现有列中设置值。
如果表是一组大小合理的行,我们可以
它可以转换任何值。带的行
lastconnected
无法解析为有效日期时间的值将具有dt_lastconnected
设置为空。如果我们想在insert语句中填充新的列,我们需要以正确的格式提供值,
YYYY-MM-DD HH:MI:SS
例如更正插入代码后,可以删除string列,并重命名新列(如果
lastconnected
是索引中的列。)