The way I was taught, spiccato is a short note made by lifting your bow and lightly bouncing it (off-string), while staccato is a short note that is produced without lifting your bow, but instead by applying pressure and releasing it (on-string). However, both techniques are marked in music by dots, so how do you know which technique to use when playing pieces? I always have to look up the performance to see what other people do and then I just copy them. Are there general rules for when you should be using spicatto and when you should be using staccato? Any advice is greatly appreciated!
It's to do with context and speed. To bounce the bow the notes need to be fast enough for this, otherwise it becomes impractical. For example, if you were playing semiquavers in a slow speed, or quavers in a moderate speed, it probably wouldn't be fast enough for spiccato. If fast enough, it would generally be natural to play staccato notes off the string.
You certainly do not need a fast speed in order to play with spiccato. If it is very fast the spiccato stroke transforms into sautille but there is no limit as to how slow spiccato can be.
Regarding the original question on staccato versus spiccato: ..., so how do you know which technique to use when playing pieces?
There is no rule really, it can depend on the type and style of the music and on the tradition of how a certain style is played. But you can find different interpretations of the same piece of music. Thus sometimes you don't know in which case you can decide for yourself and choose what you think fits the music.
Note that spiccato is a violin technical term (including all instruments in the violin family) while staccato is a general musical term. So if a non-string player asks you to play staccato and you play spiccato he might say, yes that's exactly it.